При входе в систему отображается пустая страница с URL: / login - PullRequest
0 голосов
/ 21 мая 2019

Я использую встроенные методы аутентификации Laravel.

У меня есть функция перенаправления, которая возвращает маршруты для разных ролей пользователя.

Он не перенаправляет на указанный URL при переходе на /login, он просто показывает пустой URL с простым маршрутом (/login) в HTML

Я искал это документы , но не смог найти решение этой проблемы.

Этот код создает проблему, я думаю:

//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 голосов
/ 21 мая 2019

Это решило проблему перенаправления и слишком много перенаправлений из-за конфликта с другой функцией перенаправления входа в систему:

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