Pada tutorial sebelumnya kita telah membuat autentikasi login di laravel, nah sekarang ini adalah tutorial lanjutan, yaitu menambahkan verifikasi email pendaftaran laravel. Skenarionya adalah pada saat user mendaftar melalui form pendaftaran yang sudah dibuat menggunakan Auth bawaan laravel maka user diwajibkan untuk melakukan verifikasi email.
Apabila user tidak melakukan verifikasi email maka pada saat login akan ditolak masuk ke dalam halaman admin laravel, namun pada saat user mendaftar jika sebelumnya user langsung masuk ke halaman admin setelah selesai pendaftaran maka sekarang user akan dihadapkan ke halaman verifikasi email.
Integrasi Email SMTP
Karena saat ini kita sedang membahas verifikasi email maka kita membutuhkan sebuah SMTP, saat ini penulis menggunakan Mailtrap.io, jika kamu memiliki SMTP sendiri silahkan digunakan, jika tidak ada SMTP bisa mendaftar terlebih dahulu, tapi yang perlu di ingat Mailtrap.io ini hanya untuk pengembangan, tidak bisa digunakan di production.
Jika kamu sudah mendaftar Mailtrap silahkan klik Demo Inbox, lalu pada bagian SMTP Settings klik Show Credentials maka akan muncul seperti dibawah ini.
Jika sudah buka file .env di projek belajar laravel yang sudah dibuat pada tutorial sebelumnya yaitu membuat autentikasi login di laravel. Lalu pada bagian dibawah ini.
MAIL_MAILER=smtp MAIL_HOST=mailhog MAIL_PORT=1025 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS=null
Ubah menjadi seperti dibawah ini sesuai dengan credentials Mailtrap yang sudah anda daftar tadi.
MAIL_MAILER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=a379aebfd8ae9b MAIL_PASSWORD=4f483c6328c391 MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS=laravel@app.com
Verifikasi Email Pendaftaran
Untuk membuat verifikasi email pendaftaran sangat mudah sekali, anda hanya perlu memanggil library yang sudah tersedia di laravel. Pertama bukalah file User.php di folder app/Models, lalu pada baris kode dibawah ini.
class User extends Authenticatable
{
....
}
Code language: JavaScript (javascript)
Ubahlah menjadi kode dibawah ini.
class User extends Authenticatable implements MustVerifyEmail
{
....
}
Code language: PHP (php)
Jika sudah selanjutnya buka file web.php yang ada di folder routes/web.php, lalu ubah kode dibawah ini.
Auth::routes();
Code language: CSS (css)
Menjadi seperti kode dibawah ini.
Auth::routes(['verify' => true]);
Code language: PHP (php)
Lalu yang terakhir buka file HomeController.php yang ada di folder app/Http/Controllers/ selanjutnya pada bagian kode dibawah ini.
$this->middleware('auth');
Code language: PHP (php)
Ubahlah menjadi seperti dibawah ini.
$this->middleware(['auth', 'verified']);
Code language: PHP (php)
Selanjutnya coba kalian mendaftar melalui halaman pendaftaran yang sudah dibuat menggunakan Auth pada tutorial sebelumnya. Apabila sudah melakukan pendaftaran maka anda akan di arahkan ke halaman pemberitahuan bahwa harus melakukan verifikasi email seperti pada gambar dibawah ini.
Dan di email kalian tentunya akan mendapatkan email baru terkait verfikasi email seperti pada gambar dibawah ini.
Silahkan lakukan verifikasi, karena apabila tidak melakukan verifikasi tentunya anda akan tetap diarahkan ke halaman peringatan verifikasi email.