【问题标题】:Two Factor Authentication on Iphone?iPhone上的两因素身份验证?
【发布时间】:2019-10-02 05:56:35
【问题描述】:

我的 nodeJS 服务器应用程序中有一个 2FA 代码,它利用 speakeasy 模块来验证传递的密钥是否有效。我在客户端使用 google Authenticator 应用程序。我正在使用密钥 =“A0B0C0D0E0F0A1B1C1D1E1F2”。 这适用于 Android 设备。但是,当我在 Iphone 上尝试相同的操作时,我会遇到以下问题:

  1. Iphone 上的 Google Authenticator 应用程序不允许我添加秘密“A0B0C0D0E0F0A1B1C1D1E1F2”。它似乎有一些关于密钥的本地规则。
  2. 即使我输入了 Iphone 允许的密钥,speakeasy.totp 代码也无法验证,并且总是返回 FALSE。
  secretKey = "A0B0C0D0E0F0A1B1C1D1E1F2";
  var verified = speakeasy.totp.verify({
    secret: secretKey,
    encoding: 'base32',
    token: userToken
  }); 

if(!verified) {
         // verification failed
    } else {
         // verification ok
    }

如何解决此问题,使其在 Android 和 Iphone 设备上都可以使用?

注意:该应用仍在测试区域中。 prod 中的密钥将存储在永久 storage/db 中。

谢谢。

【问题讨论】:

    标签: node.js two-factor-authentication totp


    【解决方案1】:

    totp.verify 中使用的密钥是小写的。当我将其转换为大写时,它开始正常工作。

    【讨论】:

      猜你喜欢
      • 2019-07-21
      • 1970-01-01
      • 2018-07-30
      • 1970-01-01
      • 2012-11-03
      • 2016-06-06
      • 2016-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多