我正在使用Laravel内置身份验证方法。
我有一个重定向功能,该功能可以返回不同用户角色的路由。
在转到/login
时,它不会重定向到指定的URL,它只是在HTML中显示带有纯路由(/login
)的空白URL
我已经搜索了这个docs,但是找不到解决此问题的方法。
这段代码确实产生了我认为的问题:
//Auth/LoginController
protected function redirectTo()
{
if (!Auth::guest()) {
if (Auth::user()->is_active != 0) {
if(Auth::user()->hasRole('administrator')) {
$this->redirectTo = '/admin';
return $this->redirectTo;
} else if(Auth::user()->hasRole('customer')) {
$this->redirectTo = '/customer';
return $this->redirectTo;
} else {
return '/logout';
}
} else {
return '/dashboard';
}
} else {
return '/login';
}
}
当我使用重定向时:
protected function redirectTo()
{
if (!Auth::guest()) {
if (Auth::user()->is_active != 0) {
if(Auth::user()->hasRole('administrator')) {
$this->redirectTo = '/admin';
return redirect($this->redirectTo);
} else if(Auth::user()->hasRole('customer')) {
$this->redirectTo = '/customer';
return redirect($this->redirectTo);
} else {
return redirect('/logout');
}
} else {
return redirect('/dashboard');
}
} else {
return redirect('/login');
}
}
我收到此错误:
此页面无法正常使用[..]重定向您太多次。
在转到登录路径时,如何也重定向用户。
提前谢谢!
答案 0 :(得分:0)
此解决了重定向问题,由于与另一个登录重定向功能发生冲突而导致过多的重定向错误:
protected function loggedOut(Request $request) {
return redirect('/login');
}
protected function redirectTo()
{
if (!Auth::guest()) {
if (Auth::user()->is_active != 0) {
if(Auth::user()->hasRole('administrator')) {
$this->redirectTo = '/admin';
return redirect($this->redirectTo);
} else if(Auth::user()->hasRole('customer')) {
$this->redirectTo = '/customer';
return redirect($this->redirectTo);
} else {
return redirect('/logout');
}
} else {
return redirect('/dashboard');
}
} else {
return view('auth.login');
}
}