Laravel menyediakan fitur email verification bawaan yang aman dan fleksibel. Proses ini membantu memastikan bahwa hanya pengguna dengan email valid yang bisa mengakses sistem.
🎯 Tujuan Part 8
- Mengaktifkan fitur verifikasi email di Laravel
- Mengirim link verifikasi secara otomatis setelah registrasi
- Proteksi akses untuk user yang belum memverifikasi email
- Menampilkan status verifikasi di dashboard
⚙️ 1. Pastikan Laravel Breeze Aktif
Jika belum install autentikasi Laravel:
composer require laravel/breeze --dev
php artisan breeze:install
npm install && npm run dev
php artisan migrate
✅ 2. Tambahkan Fitur Verifikasi Email
Laravel menggunakan trait MustVerifyEmail
.
a. Update User.php
:
use Illuminate\Contracts\Auth\MustVerifyEmail;
class User extends Authenticatable implements MustVerifyEmail
{
// ...
}
b. Update Route Group (web.php):
Pastikan dashboard atau halaman utama dilindungi oleh middleware verified
:
Route::middleware(['auth', 'verified'])->group(function () {
Route::get('/dashboard', function () {
return view('dashboard');
})->name('dashboard');
});
📬 3. Pengiriman Link Otomatis
Setelah user mendaftar, Laravel akan secara otomatis mengirim link verifikasi ke email yang didaftarkan.
Kamu bisa mengetes dengan mendaftarkan user dan memeriksa email melalui log (atau Mailtrap, SMTP, dll).
📨 4. Cek Status Verifikasi
Di halaman dashboard atau profil:
@if (!Auth::user()->hasVerifiedEmail())
<p>Email Anda belum diverifikasi. <a href="{{ route('verification.notice') }}">Klik di sini untuk kirim ulang</a></p>
@endif
Laravel otomatis menyediakan route untuk:
verification.notice
→ notifikasi email belum diverifikasiverification.send
→ kirim ulang emailverification.verify
→ proses verifikasi
🔒 5. Middleware verified
Jangan lupa hanya izinkan user terverifikasi mengakses fitur penting:
Route::middleware(['auth', 'verified'])->group(function () {
Route::get('/produk', [ProdukController::class, 'index']);
});
📧 6. Konfigurasi Mail
Pastikan .env
sudah dikonfigurasi:
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your_mailtrap_user
MAIL_PASSWORD=your_mailtrap_pass
MAIL_FROM_ADDRESS=no-reply@yourdomain.com
MAIL_FROM_NAME="Nama Aplikasi"
Gunakan Mailtrap, Gmail SMTP, atau layanan seperti Mailgun/Ses.
🧠 Best Practice Email Verification
Aspek | Rekomendasi |
---|---|
Middleware verified | Pastikan semua fitur penting dilindungi |
Email resend protection | Laravel otomatis batasi pengiriman email verifikasi |
Status UI | Tampilkan peringatan jika belum verifikasi |
Email validasi | Gunakan DNS validator bila perlu |
🧰 Elektra Network Vision – Pakar Sistem Laravel & Email Otentikasi
Kami bantu Anda:
- Setup email Laravel (SMTP, Mailgun, SES)
- Sistem registrasi + verifikasi multi-role
- Dashboard monitoring user verified / unverified
🌐 elektranetworkvision.com — Solusi Laravel profesional dan aman untuk bisnis Anda.