Assalamualaikum Warohmatulloh Wabarokatuh, setelah belajar tentang autentikasi, berikutnya ada hal yang cukup penting juga dalam proses autentikasi adalah verifikasi email Laravel. Memastikan email pengguna terdaftar adalah email asli atau bukan email palsu bisa sangat penting untuk pemilik website. Selain untuk memastikan bahwa penggunanya ini adalah orang asli yang ingin menikmati konten di website. Juga penting untuk memiliki email asli dari pengguna untuk keperluan marketing.
Mungkin yang terbayang dalam benak kita proses ini cukuplah memakan waktu untuk dibuat kodenya. Memang benar ada beberapa langkah yang harus dilakukan. Pertama, ketika pengguna mendaftar pada website kita harus membuat sebuah kode unik yang digunakan untuk verifikasi email pengguna. Kedua, mengirimkan email yang berisi tautan atau kode unik yang sudah dibuat untuk memastikan bahwa pengguna benar-benar menerima kode tersebut melalui email yang asli. Ketiga, menyediakan halaman untuk proses verfikasi bisa berupa halaman kosong yang diakses dengan kode unik / halaman dengan sebuah form untuk verifikasi, pilih sesuai kebutuhan. Keempat di belakang halaman tersebut, kita harus memproses proses verfikasinya, mencocokkan email dengan kode unik yang sudah dikirimkan, jika cocok maka kita ubah status dari pengguna menjadi pengguna aktif.
Haha, panjang ya? iya sengaja dibuat panjang biar kawan-kawan capek bacanya. Gimana ? berapa lama kira-kira bikin fitur tersebut? atau kawan-kawan berdoa seperti ini “Laravel please do your magic” ? haha. Untungya sejak Laravel 5.7 kita bisa buat fitur tersebut kurang dari 2 menit. Kaget? ya ngga usah kaget sih, kan emang kelakuannya Laravel begitu suka bikin kerjaan jadi ringan aja wkwk.
Verifikasi Email Laravel
Oke, kita mulai aja ya bagaimana implementasinya, tentu ini setelah melakukan proses membuat autentikasi yang sudah kita bahas sebelumnya ya. Pertama buka model User
, kemudian kita tinggal tambahkan implements MustVerifyEmail
pada classnya.
<?php
namespace App;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class User extends Authenticatable implements MustVerifyEmail
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
}
Kemudian aktifkan routing untuk verifikasi email pada Auth::routes()
di route web
.
Auth::routes(['verify' => true ]);
Sampai di sini sebenarnya semua fungsi untuk verifikasi email sudah bisa digunakan. Tapi mungkin untuk memastikan bahwa halaman hanya bisa diakses oleh pengguna yang sudah terverifikasi kita bisa gunakan middleware verified
. Contoh :
Route::get('/', 'SampleController@index')->middleware('verified')->name('home');
Jadi, gimana? singkat kan? singkat lah, kan Laravel emang framework yang mendukung produktifitas banget :P.
Wassalamualaikum Warohmatulloh Wabarokatuh.
Dia langsung ngirim email buat verifikasi pendaftaran kah ketik paka implement??
iya betul
dapat error kaya gini mas
Expected response code 250 but got code “530”, with message “530 5.7.1 Authentication required “
SMTP udah diset belum? karena ini artikel berseri jadi di sini saya ga jelaskan ulang untuk setup email, jadi supaya bisa setup email silakan sesuaikan konfigurasinya
kalau mau custom tampilan emailnya gimana mas ? filenya ada dmn ?