Cara Bikin Fitur Email Verified Dengan Laravel 11 dan Laravel Breeze

Email verification adalah fitur yang sangat penting pada sebuah website. Dengan fitur ini, kita dapat memastikan bahwa pengguna yang mendaftar benar-benar menggunakan alamat email yang valid dan dapat dihubungi. Ini sangat penting untuk mencegah pendaftaran dengan email palsu atau spam, dan juga memberikan lapisan keamanan tambahan untuk pengguna.

Mengapa Verifikasi Email Penting?

  • Mencegah Spam: Dengan verifikasi email, kita dapat memastikan bahwa pengguna menggunakan email yang valid. Ini membantu mengurangi spam dan pendaftaran yang tidak diinginkan.
  • Keamanan: Verifikasi email membantu dalam memastikan bahwa pengguna yang mendaftar adalah orang yang memiliki akses ke email tersebut. Ini menambah lapisan keamanan pada akun pengguna.
  • Komunikasi: Dengan email yang terverifikasi, kita dapat memastikan bahwa kita bisa menghubungi pengguna untuk tujuan penting seperti reset password, pemberitahuan, dan lainnya.

Mengenal Laravel Breeze

Laravel Breeze adalah sebuah package yang mempermudah developer dalam mengimplementasikan fitur authentication pada aplikasi Laravel. Breeze menyediakan semua fitur dasar seperti login, register, reset password, dan juga verifikasi email dengan cepat dan mudah.

Keuntungan Menggunakan Laravel Breeze:

  • Cepat dan Mudah: Breeze menyediakan scaffold yang siap pakai untuk fitur authentication.
  • Terintegrasi dengan Laravel: Breeze dibuat oleh tim Laravel sehingga integrasinya sangat baik dengan framework ini.
  • Sederhana dan Minimalis: Breeze dirancang dengan kesederhanaan dan minimalisme, membuatnya mudah dipahami dan dikustomisasi.

Mengaktifkan Fitur Verifikasi Email dengan Laravel Breeze (Laravel 11)

Untuk mengaktifkan fitur verifikasi email di Laravel 11 dengan menggunakan Breeze, ikuti langkah-langkah berikut:

1) Install Laravel Breeze:

composer require laravel/breeze --dev
php artisan breeze:install
npm install && npm run dev
php artisan migrate

2) Menambahkan Middleware Verifikasi Email: Di Laravel 11, middleware tidak lagi didefinisikan di file app/Http/Kernel.php. Sebagai gantinya, middleware dapat ditambahkan langsung di file rute atau di controller. Berikut adalah cara menambahkan middleware verifikasi email:

3) Update Rute untuk Verifikasi Email: Pada file routes/web.php, tambahkan rute untuk verifikasi email:

use Illuminate\\\\Foundation\\\\Auth\\\\EmailVerificationRequest;
use Illuminate\\\\Http\\\\Request;
use Illuminate\\\\Support\\\\Facades\\\\Route;

// Email Verification Notice
Route::get('/email/verify', function () {
    return view('auth.verify-email');
})->middleware('auth')->name('verification.notice');

// Email Verification Handler
Route::get('/email/verify/{id}/{hash}', function (EmailVerificationRequest $request) {
    $request->fulfill();
    return redirect('/home');
})->middleware(['auth', 'signed'])->name('verification.verify');

// Resend Verification Email
Route::post('/email/verification-notification', function (Request $request) {
    $request->user()->sendEmailVerificationNotification();
    return back()->with('message', 'Verification link sent!');
})->middleware(['auth', 'throttle:6,1'])->name('verification.send');

4) Update Model User: Pastikan model User menggunakan trait MustVerifyEmail:

use Illuminate\\\\Contracts\\\\Auth\\\\MustVerifyEmail;

class User extends Authenticatable implements MustVerifyEmail
{
    // ...
}

5) Mengupdate Blade Template: Update template Blade untuk menampilkan pesan verifikasi email. Misalnya pada halaman dashboard:

@if (session('status') == 'verification-link-sent')
    <div class="mb-4 font-medium text-sm text-green-600">
        A new verification link has been sent to your email address.
    </div>
@endif

@if (Auth::user()->hasVerifiedEmail())
    <p>Email kamu sudah diverifikasi.</p>
@else
    <p>Email kamu belum diverifikasi. <a href="{{ route('verification.send') }}">Klik di sini untuk kirim ulang verifikasi</a>.</p>
@endif

Contoh Proyek yang Membutuhkan Fitur Verifikasi Email

E-commerce: Pada situs e-commerce, verifikasi email penting untuk memastikan bahwa informasi yang dikirimkan kepada pengguna seperti faktur, konfirmasi pesanan, dan informasi pengiriman diterima oleh pengguna yang sah.

Contoh Kode:

// routes/web.php
use App\\\\Http\\\\Controllers\\\\OrderController;
use Illuminate\\\\Support\\\\Facades\\\\Route;

Route::middleware(['auth', 'verified'])->group(function () {
    Route::get('/orders', [OrderController::class, 'index'])->name('orders.index');
    Route::get('/orders/{order}', [OrderController::class, 'show'])->name('orders.show');
});

// OrderController.php
namespace App\\\\Http\\\\Controllers;

use Illuminate\\\\Http\\\\Request;
use App\\\\Models\\\\Order;

class OrderController extends Controller
{
    public function index()
    {
        $orders = auth()->user()->orders;
        return view('orders.index', compact('orders'));
    }

    public function show(Order $order)
    {
        return view('orders.show', compact('order'));
    }
}

Aplikasi Pendidikan: Dalam platform e-learning, memastikan bahwa pengguna yang mendaftar adalah pengguna yang valid sangat penting untuk menjaga kualitas interaksi dan komunikasi antara pengajar dan siswa.

Contoh Kode:

// routes/web.php
use App\\\\Http\\\\Controllers\\\\CourseController;
use Illuminate\\\\Support\\\\Facades\\\\Route;

Route::middleware(['auth', 'verified'])->group(function () {
    Route::get('/courses', [CourseController::class, 'index'])->name('courses.index');
    Route::get('/courses/{course}', [CourseController::class, 'show'])->name('courses.show');
});

// CourseController.php
namespace App\\\\Http\\\\Controllers;

use Illuminate\\\\Http\\\\Request;
use App\\\\Models\\\\Course;

class CourseController extends Controller
{
    public function index()
    {
        $courses = Course::all();
        return view('courses.index', compact('courses'));
    }

    public function show(Course $course)
    {
        return view('courses.show', compact('course'));
    }
}

Aplikasi Sosial Media: Pada aplikasi sosial media, verifikasi email membantu dalam menjaga integritas dan keaslian komunitas dengan memastikan bahwa setiap akun yang dibuat menggunakan email yang valid.

Contoh Kode:

// routes/web.php
use App\\\\Http\\\\Controllers\\\\ProfileController;
use Illuminate\\\\Support\\\\Facades\\\\Route;

Route::middleware(['auth', 'verified'])->group(function () {
    Route::get('/profile', [ProfileController::class, 'show'])->name('profile.show');
    Route::post('/profile', [ProfileController::class, 'update'])->name('profile.update');
});

// ProfileController.php
namespace App\\\\Http\\\\Controllers;

use Illuminate\\\\Http\\\\Request;

class ProfileController extends Controller
{
    public function show()
    {
        $user = auth()->user();
        return view('profile.show', compact('user'));
    }

    public function update(Request $request)
    {
        $request->validate([
            'name' => 'required|string|max:255',
            'bio' => 'nullable|string|max:500',
        ]);

        $user = auth()->user();
        $user->update($request->all());

        return redirect()->route('profile.show')->with('status', 'Profile updated!');
    }
}

Pada ketiga contoh di atas, middleware verified digunakan untuk memastikan bahwa hanya pengguna yang telah memverifikasi email mereka yang dapat mengakses rute tertentu. Hal ini penting untuk memastikan bahwa pengguna yang mengakses informasi sensitif atau melakukan tindakan tertentu adalah pengguna yang sah.

Contoh Proyek yang Membutuhkan Fitur Verifikasi Email

  1. E-commerce: Pada situs e-commerce, verifikasi email penting untuk memastikan bahwa informasi yang dikirimkan kepada pengguna seperti faktur, konfirmasi pesanan, dan informasi pengiriman diterima oleh pengguna yang sah.
  2. Aplikasi Pendidikan: Dalam platform e-learning, memastikan bahwa pengguna yang mendaftar adalah pengguna yang valid sangat penting untuk menjaga kualitas interaksi dan komunikasi antara pengajar dan siswa.
  3. Aplikasi Sosial Media: Pada aplikasi sosial media, verifikasi email membantu dalam menjaga integritas dan keaslian komunitas dengan memastikan bahwa setiap akun yang dibuat menggunakan email yang valid.

Belajar dengan Mentor di BuildWithAngga

Jika Anda ingin mendalami lebih lanjut tentang Laravel dan fitur-fitur lainnya, belajar dengan mentor di BuildWithAngga bisa menjadi pilihan yang tepat. BuildWithAngga adalah platform pembelajaran yang menawarkan berbagai kursus online dengan kualitas tinggi, disertai dengan bimbingan langsung dari mentor-mentor berpengalaman. Berikut adalah beberapa keuntungan yang bisa Anda dapatkan dengan belajar di BuildWithAngga:

  • Akses Seumur Hidup: Setelah membeli kursus di BuildWithAngga, Anda akan mendapatkan akses seumur hidup ke materi pembelajaran. Ini berarti Anda dapat kembali dan meninjau materi kapan saja, tanpa batasan waktu.

Akses seumur hidup ini sangat bermanfaat untuk memperkuat pemahaman Anda dan tetap up-to-date dengan perkembangan terbaru di bidang Laravel dan teknologi lainnya.

  • Bonus Konsultasi: BuildWithAngga menawarkan bonus konsultasi dengan mentor bagi para siswa. Kesempatan ini memungkinkan Anda untuk mendapatkan bimbingan langsung dari para ahli yang berpengalaman di industri.

Anda dapat bertanya tentang berbagai hal, mulai dari masalah teknis dalam proyek Anda hingga saran karier dan pengembangan profesional.

  • Grup Diskusi: Sebagai bagian dari komunitas BuildWithAngga, Anda akan bergabung dengan grup diskusi yang aktif antar siswa. Grup ini adalah tempat yang sempurna untuk saling berbagi ilmu, bertukar pengalaman, dan membantu satu sama lain dalam mengatasi tantangan pembelajaran.

Diskusi yang kolaboratif ini akan memperkaya proses belajar Anda dan membuka kesempatan untuk networking dengan sesama developer.

  • Persiapan Kerja: Materi di BuildWithAngga disusun untuk membantu Anda siap terjun ke dunia kerja dengan skill yang matang. Kursus-kursus dirancang berdasarkan kebutuhan industri, sehingga Anda akan mempelajari keterampilan yang relevan dan dicari oleh perusahaan.

Selain itu, Anda juga akan mendapatkan tips dan trik dalam mempersiapkan diri untuk wawancara kerja, membangun portfolio, dan meningkatkan peluang karier Anda di bidang web development.

Dengan berbagai keuntungan di atas, belajar di BuildWithAngga tidak hanya membantu Anda menguasai Laravel dan teknologi lainnya, tetapi juga memberikan dukungan yang Anda butuhkan untuk sukses dalam karier Anda sebagai developer. Bergabunglah dengan BuildWithAngga dan rasakan manfaatnya secara langsung!