我想创建一个身份验证系统(一个单一的形式),使管理员和学生能够访问两个不同的界面,管理员可以访问控制面板和用户访问主系统。此外,我想在数据库中单独的表,一个为管理员,另一个为学生。有没有可能做到这一点?有什么建议,请告诉我怎么做。
谢谢..。
发布于 2019-01-30 15:05:05
您需要更改中间件文件夹中的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部分添加管理保护。对于提供者也是一样的。
这是针对提供商的:
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'admins' => [
'driver' => 'eloquent',
'model' => App\AdminModel::class,
],
]https://stackoverflow.com/questions/54434257
复制相似问题