Verify Email Laravel | Laravel
Pembuatan fitur verifikasi email menggunakan akun gmail dengan memanfaatkan framework Laravel 10.
1. Atur di bagian .env
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=rajabumisamudera@gmail.com
MAIL_PASSWORD=etoxvnrqrcakclpa
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=rajabumisamudera@gmail.com
MAIL_FROM_NAME="${APP_NAME}"
2. Tambahkan mustverifyemail ke Models user
use Illuminate\Contracts\Auth\MustVerifyEmail;
class User extends Authenticatable implements MustVerifyEmail
3. Tambah kolom email verify di tabel user
$table->timestamp('email_verified_at')->nullable();
4. Mengirim Email Verifikasi
$user->sendEmailVerificationNotification();
Auth::login($user);
return redirect()->route('verification.notice');
5. Route untuk verifikasi Email
// Proses Verifikasi Email
// Route untuk halaman verifikasi email
Route::get('/email/verify', function () {
return view('auth.verify');
})->middleware('auth')->name('verification.notice');
// Route untuk memproses verifikasi email
Route::get('/email/verify/{id}/{hash}', function (EmailVerificationRequest $request) {
$request->fulfill();
return redirect('/login'); // Ubah ke halaman yang sesuai setelah verifikasi berhasil
})->middleware(['auth', 'signed'])->name('verification.verify');
// Route untuk mengirim ulang email verifikasi
Route::post('/email/resend', function (Request $request) {
$request->user()->sendEmailVerificationNotification();
return back()->with('resent', true);
})->middleware(['auth', 'throttle:6,1'])->name('verification.resend');
6. view (auth.verify)
@extends('auth.master')
@section('title', 'Verifikasi Email')
@section('content')
<div class="container mt-4">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">{{ __('Verify Your Email Address') }}</div>
<div class="card-body">
@if (session('resent'))
<div class="alert alert-success" role="alert">
{{ __('A fresh verification link has been sent to your email address.') }}
</div>
@endif
{{ __('Before proceeding, please check your email for a verification link.') }}
{{ __('If you did not receive the email') }},
<form class="d-inline" method="POST" action="{{ route('verification.resend') }}">
@csrf
<button type="submit" class="btn btn-link p-0 m-0 align-baseline">
{{ __('click here to request another') }}
</button>.
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
Posting Komentar