Authy 文档 Auth-Key 和二维码
Authy documentation Auth-Key and QR code
我正在尝试使用 authy 实现 2FA,并使用 authy php 库和 authy API 密钥将用户添加到 authy,以便用户可以扫描二维码并在 phone.
我做了 library github page 中提到的文档。用户数据已成功保存,但我正在获取一些随机数字密钥(由 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");
}
}
另一个问题是我如何生成 Authy 可以理解的二维码?我已经搜索了一些,但没有得到任何解决方案。请帮助我。
Twilio/Authy 此处为开发人员布道师。
我必须道歉,我们这里的文档有点落后了。我会尽力帮忙的。
首先,我建议您查看 two factor authentication with Twilio and Authy 上的文档。
其次,让我解释一下与 Authy 的流程,了解您的进展情况。
您已正确设置 API 和凭据,然后您已使用对 $authy_api->registerUser
的调用注册了用户。您从该响应中获得的用户 ID 不应与任何人共享。它是您在 Authy 数据库中对您的用户的引用。您应该针对正在注册的用户存储该 ID,并在您需要发送代码或验证代码时随时使用该 ID。
您也不需要使用二维码与用户分享任何内容。要启动双因素身份验证过程,您现在需要调用:
$authy_api->requestSMS($userID);
使用您从 API 返回的 ID 作为此代码中的 $usedID
。
方法调用表明它将发送一条 SMS,但这只是一些遗留问题。
- 如果您的用户已经安装了 Authy 移动应用程序并使用他们的 phone 号码登录并验证了它,那么 Authy 将向该应用程序发送一个推送通知,其中包含他们需要发送给您的代码。您的应用程序将出现在 Authy 应用程序中,用户无需执行任何操作(尤其是扫描二维码)。
- 如果用户没有安装 Authy 应用程序,Authy 将向他们发送一条包含代码的短信。如果您想避免发送短信,则需要鼓励您的用户安装 Authy 应用程序。
最后,一旦用户在您的网站上输入代码,您应该调用 verify the token:
$authy_api->verifyToken($userID, $token);
在这种情况下,$userID
是您最初从 registerUser
调用中返回并保存给您的用户的 ID。 $token
是他们从应用程序或短信中输入的代码。
如果有帮助或您有任何其他问题,请告诉我。
我正在尝试使用 authy 实现 2FA,并使用 authy php 库和 authy API 密钥将用户添加到 authy,以便用户可以扫描二维码并在 phone.
我做了 library github page 中提到的文档。用户数据已成功保存,但我正在获取一些随机数字密钥(由 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");
}
}
另一个问题是我如何生成 Authy 可以理解的二维码?我已经搜索了一些,但没有得到任何解决方案。请帮助我。
Twilio/Authy 此处为开发人员布道师。
我必须道歉,我们这里的文档有点落后了。我会尽力帮忙的。
首先,我建议您查看 two factor authentication with Twilio and Authy 上的文档。
其次,让我解释一下与 Authy 的流程,了解您的进展情况。
您已正确设置 API 和凭据,然后您已使用对 $authy_api->registerUser
的调用注册了用户。您从该响应中获得的用户 ID 不应与任何人共享。它是您在 Authy 数据库中对您的用户的引用。您应该针对正在注册的用户存储该 ID,并在您需要发送代码或验证代码时随时使用该 ID。
您也不需要使用二维码与用户分享任何内容。要启动双因素身份验证过程,您现在需要调用:
$authy_api->requestSMS($userID);
使用您从 API 返回的 ID 作为此代码中的 $usedID
。
方法调用表明它将发送一条 SMS,但这只是一些遗留问题。
- 如果您的用户已经安装了 Authy 移动应用程序并使用他们的 phone 号码登录并验证了它,那么 Authy 将向该应用程序发送一个推送通知,其中包含他们需要发送给您的代码。您的应用程序将出现在 Authy 应用程序中,用户无需执行任何操作(尤其是扫描二维码)。
- 如果用户没有安装 Authy 应用程序,Authy 将向他们发送一条包含代码的短信。如果您想避免发送短信,则需要鼓励您的用户安装 Authy 应用程序。
最后,一旦用户在您的网站上输入代码,您应该调用 verify the token:
$authy_api->verifyToken($userID, $token);
在这种情况下,$userID
是您最初从 registerUser
调用中返回并保存给您的用户的 ID。 $token
是他们从应用程序或短信中输入的代码。
如果有帮助或您有任何其他问题,请告诉我。