无法重定向双重身份验证连接

Double authentication connection cannot be redirected

我正在尝试在 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 方法,但重定向不起作用。我的输出是 dd('after')。我不明白为什么我没有被重定向。有人可以帮助我吗?

昆汀

checkTotp 函数 return 是一个重定向,但您希望 login 函数 return 重定向,以便将其传递给浏览器。您可能希望将重定向移动到主要功能并让 checkTOTP 只是 return 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;
}