【发布时间】: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