我想创建一个身份验证系统(一种形式),使管理员和学生能够访问不同的界面,管理员可以访问控制面板,而用户可以访问主系统。另外,我想在数据库中使用单独的表,一个用于管理员,另一个用于学生。有没有办法做到这一点?请提供任何建议以及如何做。
谢谢...
答案 0 :(得分:0)
您需要更改中间件文件夹中的redirectifauthenticated.php文件。
我以后可以编辑答案,我现在无法访问我的代码。但是这个想法行得通:
在handle函数中:
switch ($guard){
case 'admin':
if (Auth::guard($guard)->check()){
//if you are using some role package, use with auth()->user()->hasrole('admin'), depends //your package
return redirect()->route('adminurl');
}
break;
default:
if (Auth::guard($guard)->check()){
return redirect('/homepage');
}
break;
}
return $next($request);
在config / auth.php中,您还需要向guards部分添加admin guard。对于提供商来说也是一样。
这对于提供者:
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'admins' => [
'driver' => 'eloquent',
'model' => App\AdminModel::class,
],
]