如何根据 Laravel 8 中的用户角色或权限重定向到不同的视图?
How can I redirect to different views based on user role or privilege in Laravel 8?
我将下面的功能放在 LoginController class 中以将用户重定向到不同的视图,登录后我得到了这个 419|expired第.
页
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('/');
}
}
查看 app\Http\Middleware\RedirectIfAuthenticated.php
中的 handle
方法,您会发现在用户通过 Auth 检查后,他们会收到重定向。
此 class 旨在将用户重定向到正确的 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);
}
首先将其放入您的 LoginController class: use Illuminate\Support\Facades\Auth;
注释掉这一行 protected $redirectTo =...
并将此功能添加到 LoginController class:
public 函数 redirectPath()
{
if(Auth::user()->privilege =='C'){
return '/users';
}
if(Auth::user()->privilege=='B'){
return '/blog';
}
}
我将下面的功能放在 LoginController class 中以将用户重定向到不同的视图,登录后我得到了这个 419|expired第.
页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('/');
}
}
查看 app\Http\Middleware\RedirectIfAuthenticated.php
中的 handle
方法,您会发现在用户通过 Auth 检查后,他们会收到重定向。
此 class 旨在将用户重定向到正确的 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);
}
首先将其放入您的 LoginController class: use Illuminate\Support\Facades\Auth;
注释掉这一行 protected $redirectTo =... 并将此功能添加到 LoginController class:
public 函数 redirectPath() {
if(Auth::user()->privilege =='C'){ return '/users'; } if(Auth::user()->privilege=='B'){ return '/blog'; }
}