Соединение с двойной аутентификацией не может быть перенаправлено - PullRequest
0 голосов
/ 01 июня 2019

Я пытаюсь настроить страницу двойной аутентификации в laravel, для этого я добавляю метод checkTotp, который проверяет, активировал ли пользователь двойную аутентификацию, и перенаправляет этого пользователя на страницу, о которой идет речь.

Проблема в том, что я не перенаправлен и код продолжает выполняться.

public function login(Request $request)
{
    $this->validateLogin($request);
    ...
    $this->checkTotp($request);
    dd('after');
    ...
}

protected function checkTotp(Request $request) 
{
    $user = User::where('email', $request->get('email'))->first();
    if (!is_null($user->totp_key)) {
        $request->session()->put('user_id', $user->id);
        return redirect('login/totp');
    }
}

Что происходит, когда я вхожу в метод checkTotp, но перенаправление не работает. Мой вывод - дд (после). Я не понимаю, почему я не перенаправлен. Кто-нибудь может мне помочь?

Квентин

1 Ответ

0 голосов
/ 01 июня 2019

Функция checkTotp возвращает перенаправление, но вы хотите, чтобы функция login возвращала это перенаправление, чтобы оно передавалось в браузер. Возможно, вы захотите переместить перенаправление в основную функцию и позволить checkTOTP просто вернуть true / false.

public function login(Request $request)
{
    $this->validateLogin($request);
    ...
    if ($this->checkTotp($request)) return redirect('login/totp');
    dd('after');
    ...
}

protected function checkTotp(Request $request) 
{
    $user = User::where('email', $request->get('email'))->first();
    if (!is_null($user->totp_key)) {
        $request->session()->put('user_id', $user->id);
        return true;
    }
    return false;
}
...