Sistem autentikasi (login, register, reset password) adalah fitur krusial di hampir setiap aplikasi web modern. Namun, membangunnya dari nol bisa memakan waktu dan rentan terhadap kesalahan keamanan. Untungnya, Laravel menyediakan solusi autentikasi bawaan yang canggih, aman, dan sangat mudah diimplementasikan.
Pada tutorial ini, kita akan belajar cara cepat membangun sistem login dan register menggunakan Laravel Breeze, paket autentikasi resmi dari Laravel yang paling direkomendasikan untuk proyek baru.
1. Persiapan Awal
Sebelum memulai, pastikan kamu sudah memiliki instalasi Laravel yang bersih dan koneksi ke database.
- Buat proyek Laravel baru (jika belum ada):
Bash
composer create-project laravel/laravel auth-app cd auth-app - Konfigurasi database di file
.env. PastikanDB_DATABASE,DB_USERNAME, danDB_PASSWORDsudah benar.
2. Instalasi Laravel Breeze
Laravel Breeze adalah paket minimalis yang menyediakan semua scaffolding (kerangka kerja) autentikasi dasar, termasuk view, controller, dan routes, yang siap digunakan.
Jalankan perintah berikut di terminal:
composer require laravel/breeze --dev
Perintah ini akan menginstal paket Breeze ke dalam proyek kamu.
3. Menggunakan Scaffolding Breeze
Setelah paket terinstal, jalankan perintah artisan untuk memasang scaffolding-nya. Kamu akan diberi pilihan antara Blade, React, Vue, atau Livewire. Untuk tutorial ini, kita akan memilih Blade karena paling sederhana dan langsung bekerja.
php artisan breeze:install
Saat muncul prompt, ketik 0 atau tekan Enter untuk memilih Blade.
Setelah instalasi selesai, kamu perlu menjalankan perintah npm untuk mengompilasi aset front-end yang dibutuhkan (seperti CSS dan JavaScript).
npm install
npm run dev
Terakhir, jalankan migrasi database untuk membuat tabel yang diperlukan, seperti tabel users dan password_reset_tokens.
php artisan migrate
Sekarang, sistem autentikasi sudah siap!
4. Menjelajahi Hasil Instalasi
Setelah Breeze terinstal, ada beberapa file dan direktori baru di proyek kamu.
- Controllers:
- Breeze menambahkan direktori
app/Http/Controllers/Auth. Di dalamnya terdapat controller sepertiRegisteredUserControllerdanAuthenticatedSessionControlleryang menangani logika register dan login.
- Breeze menambahkan direktori
- Views:
- Direktori
resources/views/authberisi semua file Blade untuk halaman login, register, reset password, dan lain-lain. - Breeze juga menyediakan layout dasar di
resources/views/layouts(guest.blade.phpdanapp.blade.php).
- Direktori
- Routes:
- Sebuah file baru
routes/auth.phpditambahkan dan berisi semua route autentikasi (login, register, logout, dll.). Fileroutes/web.phpsekarang akan mengimpor file ini.
- Sebuah file baru
- Middleware:
- Dua middleware penting adalah
authdanguest.auth: Digunakan untuk melindungi route, hanya bisa diakses oleh pengguna yang sudah login.guest: Digunakan untuk route yang hanya bisa diakses oleh pengguna yang belum login (misalnya halaman login dan register itu sendiri).
- Dua middleware penting adalah
5. Menggunakan Sistem Autentikasi
Sekarang, kunjungi proyek kamu di browser. Kamu akan melihat tautan Login dan Register di pojok kanan atas.
- Akses halaman register di
http://127.0.0.1:8000/registeruntuk membuat akun baru. - Akses halaman login di
http://127.0.0.1:8000/loginuntuk masuk ke akun.
Setelah berhasil login, kamu akan otomatis dialihkan ke halaman /dashboard.
Untuk membuat halaman yang hanya bisa diakses oleh pengguna yang sudah login, kamu bisa menggunakan middleware('auth') pada route.
// di file routes/web.php
use Illuminate\Support\Facades\Route;
// Route ini bisa diakses siapa saja
Route::get('/', function () {
return view('welcome');
});
// Route ini hanya bisa diakses setelah login
Route::get('/dashboard', function () {
return "Selamat datang di halaman dashboard!";
})->middleware('auth');
Kesimpulan
Dengan Laravel Breeze, kamu bisa menyiapkan sistem autentikasi yang aman dan lengkap hanya dalam beberapa menit. Kamu tidak perlu lagi khawatir tentang keamanan password atau validasi data register, karena semuanya sudah diurus oleh Laravel. Setelah sistemnya terinstal, kamu bebas memodifikasi tampilan (views) dan menambahkan logika tambahan sesuai kebutuhan aplikasi kamu.