i使用laravel 5.8并具有角色的用户。喜欢角色1、2、3。 1:isAdmin,2:isEmployee,3:isManager。
我为此角色创建中间件:
class AdminMiddleware
{
public function handle($request, Closure $next)
{
$user = $request->user();
if($user){
if($user->isAdmin())
{
return $next($request);
}
}
return abort('401');
}
}
并且我将其添加到模型用户上:
public function isAdmin()
{
if($this->roles_id == 2)
return true;
return false;
}
我将其添加到LoginController中:
protected function authenticated(Request $request, $user)
{
if ( $user->isAdmin() ) {// do your margic here
return redirect()->route('admin_dashboard');
}
elseif ($user->isEmployee()) {
return redirect()->route('pns_profile');
}
else{
return redirect()->route('profile');
}
}
及其对多认证的工作。但是我有问题。 如果我关闭浏览器。然后我再次打开该项目。它将重定向到home或'/'。喜欢 本地主机/项目/。它会去首页。
我要关闭浏览器,然后再次打开,此会话在adminMiddleware上处于活动状态,它将重定向到admin_dashoard(localhost / project / admin_dashboard)。我该怎么做?