【问题标题】:Double authentication connection cannot be redirected双重认证连接无法重定向
【发布时间】:2019-10-17 20:32:31
【问题描述】:

我正在尝试在 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')。我不明白为什么我没有被重定向。有人可以帮我吗?

昆汀

【问题讨论】:

    标签: php laravel redirect login totp


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-11
      • 1970-01-01
      • 2011-01-19
      • 1970-01-01
      • 2014-12-18
      • 2023-04-03
      • 2012-09-09
      相关资源
      最近更新 更多