首页 > 解决方案 > 登录视图在登录时显示带有 url: /login 的空白页面

问题描述

我正在使用 Laravel 内置的身份验证方法。

我有一个重定向功能,它返回不同用户角色的路由。

转到它时不会重定向到指定的 URL,只是在 HTML 中/login显示一个带有普通路由 () 的空白 URL/login

我已经搜索了这个文档,但找不到这个问题的解决方案。

这段代码确实产生了我认为的问题:

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

我收到此错误:

此页面无法正常工作 [..] 将您重定向了太多次。

转到登录路由时如何重定向用户。

提前致谢!!

标签: phplaravellaravel-5.8laravel-authentication

解决方案


由于与另一个登录重定向功能冲突,这解决了重定向和太多重定向错误:

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

推荐阅读