3

PHP v7.4,Laravel v7.28.3 我使用 pragmarx/google2fa-laravel

二维码生成:

$google2fa = app('pragmarx.google2fa');
$google2fa->setAlgorithm(Constants::SHA512);
$secret = $google2fa->generateSecretKey(64);
$user->google2fa_secret = $secret;
$user->save();

$QR_Image = $google2fa->getQRCodeInline(
    config('app.name'),
    $user->email,
    $user->google2fa_secret
);

然后我在前端渲染 QR。二维码看起来很完美,我用谷歌 2fa 应用程序扫描它,代码生成器成功添加到应用程序。

当我尝试验证来自应用程序的代码时,它总是返回 false。验证码:

 $code = 'I paste here the code from the application manually';
 $google2fa = app('pragmarx.google2fa');
 var_dump($google2fa->verifyKey($user->google2fa_secret, $code, 10));

但是,当我使用 $user->google2fa_secret 手动将代码生成器添加到移动应用程序时(我可以在数据库中检查它),它工作得很好,来自这个生成器的所有代码都通过了验证。似乎问题出在生成的 QR 图像中......

4

0 回答 0