0

我们正在使用 Amplify、Cognito 和 Angular 来构建登录工作流。在设置 TOTP 期间,我们向用户显示 QR 码。

作为一种好的做法,我们还希望允许用户手动输入“设置码”,以防他们无法使用 QR 码。

我真的找不到任何具体的文档,但似乎有些人建议使用“复制到剪贴板”按钮,该按钮复制结果,Auth.setupTOTP()然后可以将其复制到 Google Authenticator 或 Authy 或任何用户用于管理他们的 MFA。

问题是:

  1. 用户通常在他们的台式计算机上设置 TOTP,并使用手机作为他们的两因素身份验证。因此,“复制到剪贴板”技术是无用的。他们必须手动输入代码。
  2. 代码长度为 52 个字符!没有头脑正常的人会想要输入 52 个字符。

有没有办法获得更短的代码,例如最多 16 个字符?

4

1 回答 1

1

不,那是不可能的。Authenticator 应用程序需要 base32 编码的种子值,因此无需执行任何编码魔法来减少字符数。TOTP 种子必须足够长以抵抗暴力破解。

在 UX 方面,我唯一一次使用手动输入选项是在我的手机上设置 MFA 时,这显然意味着我无法用它拍摄 QR 的照片。在这种情况下,复制到剪贴板按钮会很有用,但也可以方便地在触摸设备上选择和复制。

您不必适应每种情况,它是一次性设置。如果有人由于某种原因无法用手机扫描二维码,他们只需要手动输入即可。

于 2021-04-23T12:20:27.397 回答