问题描述
我正在尝试使用 Laravel 5.8 使用 Twilio authy 实现 2FA。我希望添加用户可以扫描二维码或手动输入代码以将帐户添加到手机上的 authy 应用程序的功能。我遵循 https://www.twilio.com/docs/authy/api/users#add-a-user-without-providing-email-or-phone-number 并能够使用在线二维码生成器生成二维码,但我找不到任何有关如何生成 16 位字母数字密钥以手动输入 authy 应用程序而不是扫描二维码的文档。我怎样才能做到这一点?
解决方法
这里是 Twilio 开发者布道者。
当您创建二维码以将用户添加到 Authy 应用程序时,而无需输入他们的电话号码或电子邮件地址,您generate a QR code 使用的网址如下所示:
authy://account?token={JWT}
JWT 包含自定义用户 ID,这意味着您可以稍后get that user's status by polling or listening for requests to a custom webhook。
这意味着用户的 Authy 帐户已连接到您的 Authy 应用程序,但您无需获取电话号码或电子邮件地址。
如果您只是提供了字母数字密钥以输入应用程序,那么将无法连接用户帐户。
另一种方法是获取用户的电话号码和电子邮件地址并将其注册为 Authy 用户,然后 generate a QR code that they can use in any authenticator app。诚然,这个 API 只返回一个 QR 码,尽管该 QR 码将包含您的字母数字秘密。在这种情况下,您必须获取用户的电子邮件和电话号码并自己阅读应用程序中的二维码,但您可以通过这种方式获取秘密。