Bismillahirrahmannirrahim.
Kustomisasi Redirect Setelah Login Berdasarkan Role
Masalah:
Ketika user superadmin telah login dan mengakses base URL (misal:http://ekin.dev/), muncul pesan 403 Forbidden. Hal ini terjadi karena halaman redirect ke/dashboard, padahal seharusnya ke/admin/dashboard.
Contoh Kasus
Aplikasi Ekinerja memiliki beberapa role dengan halaman dashboard yang berbeda:
| Role | Halaman Dashboard |
|---|---|
| Pegawai | /dashboard |
| Superadmin | /admin/dashboard |
Secara default, Laravel akan me-redirect user ke /dashboard atau /home setelah login. Untuk menyesuaikan redirect berdasarkan role, Anda perlu melakukan kustomisasi.
Solusi
Pada Laravel 11, gunakan method $middleware->redirectUsersTo untuk menentukan redirect berdasarkan role user.
Langkah-langkah:
-
Buka file:
bootstrap/app.php -
Tambahkan kode berikut:
$middleware->redirectUsersTo(function ($request) { if ($request->user()->role->value == RoleUser::SUPERADMIN->value) { return route('admin.dashboard', absolute: false); } return route('dashboard', absolute: false); });Catatan:
Pastikan enumRoleUserdan relasirolepada user sudah sesuai dengan struktur aplikasi Anda.