Verify Email Laravel | Laravel

 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





إرسال تعليق

Post a Comment (0)

أحدث أقدم