Email Aktifasi/Verifikasi dengan Laravel 5.3
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
Langganan:
Posting Komentar
(
Atom
)
Mas ko saya malah nemu error "FatalThrowableError in RegisterController.php line 86: Call to a member function sendActivationMail() on null" padahal sudah saya ikutin langkah-langkahnya.
BalasHapusudah di import use App\ActivationService di RegisterController? cek juga import di ActivationService. download sample projectnya kan, coba diperiksa.
HapusKomentar ini telah dihapus oleh pengarang.
BalasHapuserror tidak di temukan Method [throwValidationException] does not exist on [App\Http\Controllers\Auth\RegisterController]. ada solusi??
BalasHapus