【问题标题】:Laravel 8 The provided two factor authentication code was invalidLaravel 8 提供的两因素验证码无效
【发布时间】:2021-05-04 23:30:26
【问题描述】:

我使用了没有喷射流的 laravel fortify。 2FA 总是返回 false。

恢复代码有效,但 6 位数代码始终返回 false

class TwoFactorAuthenticatedSessionController extends Controller
{
  
    ... 
    
    /**
     * Attempt to authenticate a new session using the two factor authentication code.
     *
     * @param  \Laravel\Fortify\Http\Requests\TwoFactorLoginRequest  $request
     * @return mixed
     */
    public function store(TwoFactorLoginRequest $request)
    {
        $user = $request->challengedUser();

        if ($code = $request->validRecoveryCode()) {
            $user->replaceRecoveryCode($code);
        } elseif (! $request->hasValidCode()) {  // This always return false
            return app(FailedTwoFactorLoginResponse::class);
        }

        $this->guard->login($user, $request->remember());

        return app(TwoFactorLoginResponse::class);
    }
  
}

$request->hasValidCode()

public function hasValidCode()
    {
        return $this->code && app(TwoFactorAuthenticationProvider::class)->verify(
            decrypt($this->challengedUser()->two_factor_secret), $this->code
        );
    }

我没有更改强化后端。我只用引导程序转换了前端。

【问题讨论】:

  • 遇到同样的问题。奇怪的是,我可以通过向/user/confirmed-two-factor-authentication 发帖,如here 所述,使用代码“确认”两因素身份验证,但在登录时它也确认代码(并使用相同的提供者进行验证),它失败

标签: laravel-8


【解决方案1】:

我在寻找同一问题的答案时遇到了这篇文章。我最终发现我的服务器时间用了大约 2 分钟。我启用了 NTP 以保持时间同步,Laravel 中的 2FA 开始正常工作。

【讨论】:

  • 我会检查一下
猜你喜欢
  • 2021-07-14
  • 2016-09-09
  • 2022-01-27
  • 2021-12-25
  • 1970-01-01
  • 2021-04-27
  • 1970-01-01
  • 2022-07-25
  • 2021-02-24
相关资源
最近更新 更多