Tutorial Laravel #36 : Verifikasi Email User Laravel

Verifikasi Email User Laravel – Pada tutorial ini kita akan belajar tentang cara membuat verifikasi email user pada laravel.
Tentu teman-teman sudah pernah mendaftar pada beberapa website, yang mengharuskan teman-teman untuk memverifikasi alamat email yang teman-teman masukkan pada saat mendaftar di website tersebut.
link verifikasinya akan dikirimkan ke email teman-teman, setelah teman-teman klik pada link konfirmasi tersebut baru kemudian akun teman-teman aktif dan bisa login ke website tersebut.
Nah, Pada tutorial ini kita akan membuat fitur semacam itu dengan menggunakan laravel. dan pastinya caranya tidak sulit karena laravel sudah mempermudahnya untuk kita untuk membuat fitur konfirmasi alamat email user pada saat user mendaftar.
Verifikasi Email User Laravel
Untuk apa kita membuat verifikasi email pada website atau aplikasi kita ? apa kegunaannya ?
Jika kita membuat website atau aplikasi yang memiliki fitur pendaftaran bagi user atau pengguna umum, alangkah lebih baiknya jika kita menggunakan atau menerapkan fitur untuk verifikasi email.
Agar user tidak memasukkan email yang salah atau email yang asal-asalan, tentu cara ini juga bisa mengurangi human error pada aplikasi atau website yang kita buat dengan laravel.
Verifikasi Email User Laravel
Pada tutorial laravel di malasngoding.com sebelumnya kita telah belajar tentang cara membuat login dan register user pada laravel. tapi kita belum menerapkan sistem verifikasi email usernya.
Oleh karena itu pada tutorial ini kita akan belajar membuat verifikasi email user pada saat user mendaftar.
Setelah user tersebut memverifikasi alamat emailnya, baru user tersebut bisa melakukan login.
Menyiapkan Proyek Laravel
Pastikan teman-teman sudah memiliki proyek laravelnya, di sini saya membuat sebuah proyek baru laravel dengan nama “laravel_malasngoding”.
1 |
composer create-project --prefer-dist laravel/laravel laravel_malasngoding |
Konfigurasi Database
Setelah proses instalasi proyek laravel selesai, selanjutnya buat database baru. database baru yang saya buat saya beri nama dengan “malasngoding_laravel”.
Kemudian buka file .env. dan silahkan sesuaikan konfigurasi username, password dan nama database dengan database yang barusan sudah kita buat.
.env
1 2 3 4 5 6 |
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=malasngoding_laravel DB_USERNAME=root DB_PASSWORD=root |
Setelah selesai konfigurasi koneksi database laravel dan database mysql nya. selanjutnya kita atur juga konfigurasi mail laravel. di contoh ini kita masih menggunakan mailtrap.io.
Jika teman-teman belum tau apa itu mailtrap.io. silahkan teman-teman baca tutorial sebelumnya, karena pada tutorial sebelumnya kita telah membahas tentang mailtrap.io dan menggunakan mailtrap.io sebagai tempat pengiriman email.
BACA :
Konfigurasi Mailtrap.io Pada Laravel
Silahkan login atau silahkan mendaftar di mailtrap.io jika belum mempunyai akun. setelah teman-teman mendapatkan username dan password mailtrap nya, isi pada pengaturan mail laravel. yang terletak pada file .env.

verifikasi email user laravel
.env
1 2 3 4 5 6 |
MAIL_DRIVER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=a824c848c8df5f MAIL_PASSWORD=9fc382e60875f3 MAIL_ENCRYPTION=null |
Setelah selesai membuat konfigurasi mail laravel, selanjutnya kita akan membuat sistem authentikasi laravel.
Authentikasi Laravel
Sebelumnya kita juga sudah pernah belajar tentang cara membuat authentikasi atau membuat login dan register pada laravel.
Jadi tidak lagi dijelaskan secara panjang tentang cara membuat register/daftar dan login nya. karena pada tutorial verifikasi email laravel ini kita akan lebih fokus pada cara membuat verifikasi alamat email user pada laravel.
Untuk membuat authentikasi laravel, kita akan migrate terlebih dulu migration-migration default dari laravel untuk membuat login.
Buka terminal dan jalankan perintah artisan berikut.
php artisan migrate
Kemudian buat authentikasinya dengan mengetik perintah artisan berikut.
php artisan make:auth
Baca lagi : Cara Membuat Login dan Register Dengan Laravel

membuat login dan register user pada laravel
Setelah selesai membuat login dan register, baru kemudian kita akan membuat pada saat user mendaftar, maka akan dikirim email verifikasi ke email si user atau pengguna yang mendaftar tersebut.
Verifikasi Email User Laravel
Untuk membuat verifikasi email user pada laravel. caranya sangat mudah. kita tinggal menambahkan implements MustVerifyEmail. pada deklarasi class model user.

verifikasi email laravel
Perhatikan contoh berikut. Silahkan buka model User.php.
App/User.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<?php namespace App; use Illuminate\Notifications\Notifiable; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; 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 tambahkan route berikut
1 |
Auth::routes(['verify' => true]); |
Pada route laravel. sehingga sekarang route laravel kita akan menjadi seperti berikut.
routes/web.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?php /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::get('/', function () { return view('welcome'); }); Auth::routes(); //verifikasi email user Auth::routes(['verify' => true]); Route::get('/home', 'HomeController@index')->name('home'); |
Selanjutnya kita akan memproteksi controller HomeController.php. agar user tidak bisa mengaksesnya sebelum melakukan verifikasi alamat emailnya.
Untuk memproteksi, teman-teman bisa menggunakan middleware verified pada route atau controller yang ingin diproteksi dari user yang belum melakukan verifikasi email.
Buka controller HomeController.php. tambahkan middleware ‘verified’ pada method __construct di controller ini.
1 |
$this->middleware(['auth','verified']); |
kita akan menerapkan middleware verified pada controller ini, sehingga controller ini hanya bisa diakses oleh user yang sudah melakukan verifikasi email.
app/Http/Controllers/HomeController.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class HomeController extends Controller { /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware(['auth','verified']); } /** * Show the application dashboard. * * @return \Illuminate\Contracts\Support\Renderable */ public function index() { return view('home'); } } |
Sekarang kita coba lihat hasilnya.
jalankan proyek laravel kita
php artisan serve
kemudian akses halaman register atau halaman daftar usernya.
localhost:8000/register
Silahkan coba buat akun baru.

verifikasi register user laravel
Saya membuat akun dengan data sebagai berikut :
- nama : Diki Alfarabi Hadi
- email : diki@malasngoding.com
- diki12345
- diki12345
dan klik register.
Maka akan muncul pemberitahuan bahwa kita harus memverifikasi alamat email terlebih dulu.

verifikasi email dengan laravel
Sekarang buka mailtrap.io, lihat apakah ada email verifikasi yang masuk.

email verifikasi laravel
Nah, email verifikasi pun telah masuk. klik pada tombol “Verify Email Address”, maka kita akan dialihkan ke halaman home user.

konfirmasi email user pada laravel
Oke selesai teman-teman.
Segala proses mengirim email verifikasi untuk mengaktifkan akun user dengan laravel sudah selesai kita buat.
Baca Juga : Tutorial Cara Membuat CRUD dengan Laravel
Tutorial Menarik Lainnya

Tutorial Laravel #41 : Action URL Laravel


Tutorial Laravel #40 : Multi Bahasa Localization Laravel


Tutorial Laravel #39 : Import Excel Laravel


Cara mengganti template verif email gimna?