我试图用authy实现2FA,并使用authy php库和authy密钥将用户添加到authy,这样用户就可以扫描QR代码,并在电话中获得我的应用程序认证。
我做了图书馆github页面中提到的文档。用户数据保存成功,但我获得一些随机的数字密钥(由authy为用户生成)秘密存储在数据库中,如果我在应用程序中输入该秘密,它显示密钥无效错误,请检查下面的屏幕截图

我们需要输入类似这样的秘密,但是我获得了数字秘密,如果我输入这个手动应用程序会显示错误,就像屏幕截图下面一样。

文档如下所示
require_once dirname(__DIR__) . '/extra/Authy/vendor/autoload.php';
$authy_api = new Authy\AuthyApi('MY_API_KEY');
$user = $authy_api->registerUser('email@gmail.com', '9999999999', 91); // (email, phone number, country code)
if($user->ok()){
echo json_encode($user->id());
}else{
foreach($user->errors() as $field => $message) {
printf("$field = $message");
}
}另一个问题是如何生成QR代码,Authy可以理解这些代码?我已经找了一些,但我没有找到任何解决办法。请帮帮我。
发布于 2017-11-29 04:01:20
Twilio/Authy开发人员在这里传道。
我必须道歉,我们这里的文件有点落后。我会尽力帮忙的。
首先,我建议您查看一下基于Twilio和Authy的双因素认证上的文档。
第二,让我向奥西解释这个过程,看看你有多远。
您已经正确设置了API和凭据,然后使用对$authy_api->registerUser的调用注册了一个用户。您从响应中获得的用户ID不应该与任何人共享。它是您在Authy数据库中对用户的引用。您应该针对正在注册的用户存储该ID,并在任何需要发送代码或验证代码时使用该ID。
您也不需要使用QR代码与用户共享任何东西。要启动两个因素的身份验证过程,您现在需要调用:
$authy_api->requestSMS($userID);使用从API获得的ID作为代码中的$usedID。
这个方法调用表明它将发送一条SMS,但是这只是一小部分遗产。
最后,一旦用户在您的站点上输入代码,您应该调用验证令牌
$authy_api->verifyToken($userID, $token);在本例中,$userID是最初从registerUser调用中获得的ID,并保存给用户。$token是他们从应用程序或短信输入的代码。
请让我知道这是否有帮助或如果你有任何其他问题。
https://stackoverflow.com/questions/47523968
复制相似问题