登录视图在登录时显示带有url:/ login的空白页面

时间:2019-05-21 11:37:45

标签: php laravel laravel-5.8 laravel-authentication

我正在使用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');
        }
    }

我收到此错误:

此页面无法正常使用[..]重定向您太​​多次。

在转到登录路径时,如何也重定向用户。

提前谢谢!

1 个答案:

答案 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');
    }
}