在Laravel 8中,我如何根据用户角色或权限重定向到不同的视图



我将下面的函数放在LoginController类中,以将用户重定向到不同的视图,登录后我得到了这个419|过期页面

protected function authenticated(Request $request, $user) {
if ($user->PRIVILEGE == 'C') {
return redirect()->route('/users');
} else if ($user->PRIVILEGE == 'B') {
return redirect('/blog');
} else {
return redirect('/');
}
}
  1. 首先将其放入登录控制程序类:使用Illuminate\Support\Facades\Auth

  2. 注释掉这行protected$redirectTo=并在LoginController类中添加此功能:

    公共函数redirectPath(({

    if(Auth::user()->privilege =='C'){
    return '/users';
    }
    if(Auth::user()->privilege=='B'){
    return '/blog';
    }    
    

    }

查看appHttpMiddlewareRedirectIfAuthenticated.php中的handle方法,您会发现用户通过Auth检查后,会收到重定向。

此类设计用于在验证后将用户重定向到正确的landing页面。

public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
$user = Auth::user();
if ($user->PRIVILEGE == 'C') {
return redirect()->route('/users');
}
if ($user->PRIVILEGE == 'B') {
return redirect('/blog');
} 
return redirect('/');
}
return $next($request);
}

最新更新