Pada saat mendaftar sebuah layanan website, biasanya akan dikirim email untuk aktifasi/verifikasi dari email yang digunakan pada saat mendaftar tersebut. ya tergantung sih, ada atau tidak. tapi, jika ingin membuat user registration dengan email aktifasi/verifikasi pada Laravel, bisa mengikuti tutorial berikut ini.


dalam kasus ini, user meskipun sudah mendaftar tapi belum aktifasi/verifikasi emailnya tidak dapat masuk ke sistem. tapi tentu ya bisa diubah-ubah sendiri nantinya.

pertama siapkan database, ada dua tabel yaitu User dan UserActivation. tabel User sudah ada secara default pada Laravel. untuk itu buat tabel User Activation dahulu.

php artisan make:migration create_user_activations_table --create=user_activations

struktur dari tabel user_activations seperti berikut.

 
untuk tabel user tambahkan kolom baru untuk menandai apakah email user sudah di aktifasi/verifikasi apa belum.


untuk tabel selesai lanjutkan dengan migrate database.

php artisan migrate

persiapan untuk database selesai, lanjut untuk pembuatan kode aktifasi/verifikasi dengan token. tapi sebelumnya jangan lupa jalankan artisan command make:auth untuk membuat user registration.

php artisan make:auth

buat file baru di folder app. beri nama ActivationRepository.php
emailnya berbentuk notifikasi, jadi buat notifikasi dahulu.

php artisan make:notification ConfirmUserEmail

file notifikasi berada di app/Notifications. atur ConfirmUserEmail seperti berikut
buat file baru lagi, di folder app untuk menangani pengiriman email aktifasi/ verifikasi. beri nama ActivationService.php.
sekarang siap digunakan pada Controller. dipakai di RegisterController dan LoginController.
pada RegisterController ubah dan tambahkan function baru register dan activateUser seperti berikut.
pada LoginController ubah dan tambahkan function authenticated seperti berikut.
dan jangan lupa route untuk aktifasi/verifikasi user.


terkahir untuk view login.blade.php tambahkan code untuk menampilkan status pada saat mendaftar.


tampilan emailnya seperti berikut (menggunakan mailtrap). atur emailnya di file .env


catatan:
untuk header email diambil dari nama aplikasi yang berada di config/app.php

download projectnya disini.
referensi