Postingan lainnya
Masalah Autentikasi Laravel
Saya buat aplikasi kasir menggunakan Laravel. Aplikasi memiliki 2 jenis pengguna yaitu Admin dan Petugas. Saya ingin bila Admin maka masuk ke dashboard.admin dan petugas masuk ke dashboard.petugas.
Masalah Error
- Saat login sebagai admin kenapa muncul error : Target class [admin] does not exist. pada halaman http://127.0.0.1:8000/admin/dashboard
- Saat login sebagai admin kenapa muncul error : Target class [petugas] does not exist. pada halaman http://127.0.0.1:8000/petugas/dashboard
Apakah karena routing yang salah? Saya yakin penggunaan namespace sudah benar
Route::get('/login', [AuthController::class, 'index'])->name('login')->middleware('guest');
Route::post('/login/do', [AuthController::class, 'doLogin'])->middleware('guest');
Route::get('/logout', [AuthController::class, 'logout'])->middleware('auth');
Route::get('/petugas/login', [AuthController::class, 'petugasIndex'])->name('petugas.login');
Route::post('/petugas/login/do', [AuthController::class, 'petugasDoLogin'])->name('petugas.login.do');
Route::get('/', function () {
if (Auth::guard('web')->check()) {
return redirect()->route('admin.dashboard');
} elseif (Auth::guard('petugas')->check()) {
return redirect()->route('petugas.dashboard');
} else {
return redirect()->route('login');
}
})->name('home')->middleware('auth');
Route::prefix('admin')->middleware(['auth', 'role:admin'])->group(function () {
Route::get('/dashboard', [DashboardController::class, 'index'])->name('admin.dashboard');
});
Route::prefix('petugas')->middleware(['auth', 'role:petugas'])->group(function () {
Route::get('/dashboard', [DashboardController::class, 'petugasIndex'])->name('petugas.dashboard');
});
atau apakah karena kesalahan pada middleware auth ?
protected function redirectTo($request)
{
if (!$request->expectsJson() && !$request->routeIs('login')) {
// Jika pengguna bukan dalam mode JSON dan tidak mengakses halaman login
if ($request->routeIs('admin.*')) {
// Jika pengguna sedang mengakses route admin, arahkan ke halaman login admin
return route('login');
} elseif ($request->routeIs('petugas.*')) {
// Jika pengguna sedang mengakses route petugas, arahkan ke halaman login petugas
return route('petugas.login');
} else {
// Untuk route selain admin dan petugas, arahkan ke halaman login default
return route('login');
}
}
return null;
}
0
1 Jawaban:
Sudah selesai masalahnya, masalahnya ada pada config/auth.php. belum menambahkan providers dan guards
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
'admin' => [
'driver' => 'session',
'provider' => 'users',
],
'petugas' => [
'driver' => 'session',
'provider' => 'petugas',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
'petugas' => [
'driver' => 'eloquent',
'model' => App\Models\Petugas::class,
],
],
1
Tanggapan
terima kasih sudah sharing. Silahkan ditandai sebagai jawaban benar. Bisa membantu untuk orang yang mengalami masalah sama.