Laravel menyediakan fitur autentikasi bawaan yang bisa kita manfaatkan dan sesuaikan untuk aplikasi e-commerce Anda. Kita akan menggunakan Laravel Breeze karena mendukung Inertia.js secara langsung.
1. Instalasi Laravel Breeze
Install Laravel Breeze:
composer require laravel/breeze --dev
Instalasi dengan Inertia:
php artisan breeze:install vue
Install Vue Form untuk karena halaman login dan register membutuhkan form:
npm install -D @tailwindcss/forms
2. Koneksi database
edit file .env menjadi sebagai berikut:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=ecommerce_inertia
DB_USERNAME=root
DB_PASSWORD=
Jalankan migrasi:
php artisan migrate
Jalankan npm
npm install && npm run dev
3. Konfigurasi Routes
Laravel Breeze secara otomatis membuat route untuk autentikasi. Anda bisa memeriksanya di routes/web.php:
<?php
use App\Http\Controllers\ProfileController;
use Illuminate\Foundation\Application;
use Illuminate\Support\Facades\Route;
use Inertia\Inertia;
Route::get('/', function () {
return Inertia::render('Welcome', [
'canLogin' => Route::has('login'),
'canRegister' => Route::has('register'),
'laravelVersion' => Application::VERSION,
'phpVersion' => PHP_VERSION,
]);
});
Route::get('/dashboard', function () {
return Inertia::render('Dashboard');
})->middleware(['auth', 'verified'])->name('dashboard');
Route::middleware('auth')->group(function () {
Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
});
require __DIR__.'/auth.php';
4. Tampilan Frontend Autentikasi
Setelah instalasi Breeze, beberapa file Vue.js akan tersedia di resources/js/Pages. Contoh:
resources/js/Pages/Auth/Login.vue(Halaman login)resources/js/Pages/Auth/Register.vue(Halaman register)resources/js/Pages/Dashboard.vue(Dashboard setelah login)
Anda bisa memodifikasi file ini untuk menyesuaikan desain aplikasi e-commerce Anda.
5. Middleware untuk Autentikasi
Pastikan middleware untuk autentikasi sudah disiapkan di app/Http/Middleware:
Authenticate.php memastikan hanya pengguna yang login bisa mengakses halaman tertentu.
Middleware EnsureEmailIsVerified melindungi route dengan verifikasi email.
Terapkan middleware pada route atau controller yang membutuhkan contoh OrderController nantinya:
Route::middleware(['auth', 'verified'])->group(function () {
Route::get('/orders', [OrderController::class, 'index'])->name('orders.index');
});
6. Testing Autentikasi
Jalankan server Laravel:
php artisan serve
Akses aplikasi di browser (http://localhost:8000) dan klik login atau register.
Buat akun baru dan pastikan Anda dapat login, logout, dan mengakses halaman dashboard.
http://localhost:8000/login
http://localhost:8000/register
Selamat Mencoba!!!