首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Authy文档-键和QR代码

Authy文档-键和QR代码
EN

Stack Overflow用户
提问于 2017-11-28 04:20:57
回答 1查看 1.9K关注 0票数 1

我试图用authy实现2FA,并使用authy php库和authy密钥将用户添加到authy,这样用户就可以扫描QR代码,并在电话中获得我的应用程序认证。

我做了图书馆github页面中提到的文档。用户数据保存成功,但我获得一些随机的数字密钥(由authy为用户生成)秘密存储在数据库中,如果我在应用程序中输入该秘密,它显示密钥无效错误,请检查下面的屏幕截图

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

文档如下所示

代码语言:javascript
复制
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可以理解这些代码?我已经找了一些,但我没有找到任何解决办法。请帮帮我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-29 04:01:20

Twilio/Authy开发人员在这里传道。

我必须道歉,我们这里的文件有点落后。我会尽力帮忙的。

首先,我建议您查看一下基于Twilio和Authy的双因素认证上的文档。

第二,让我向奥西解释这个过程,看看你有多远。

您已经正确设置了API和凭据,然后使用对$authy_api->registerUser的调用注册了一个用户。您从响应中获得的用户ID不应该与任何人共享。它是您在Authy数据库中对用户的引用。您应该针对正在注册的用户存储该ID,并在任何需要发送代码或验证代码时使用该ID。

您也不需要使用QR代码与用户共享任何东西。要启动两个因素的身份验证过程,您现在需要调用:

代码语言:javascript
复制
$authy_api->requestSMS($userID);

使用从API获得的ID作为代码中的$usedID

这个方法调用表明它将发送一条SMS,但是这只是一小部分遗产。

  • 如果您的用户已经安装了Authy移动应用程序并登录并使用他们的电话号码对其进行了验证,那么Authy将向该应用程序发送推送通知,并包含他们发送给您的代码。您的应用程序将出现在Authy应用程序中,用户无需做任何事情(特别是扫描QR代码)。
  • 如果用户没有安装Authy应用程序,那么Authy将向他们发送带有代码的SMS消息。如果你想避免发送短信,那么你需要鼓励你的用户安装Authy应用程序。

最后,一旦用户在您的站点上输入代码,您应该调用验证令牌

代码语言:javascript
复制
$authy_api->verifyToken($userID, $token);

在本例中,$userID是最初从registerUser调用中获得的ID,并保存给用户。$token是他们从应用程序或短信输入的代码。

请让我知道这是否有帮助或如果你有任何其他问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47523968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档