Iphone 上的双重身份验证?

Two Factor Authentication on Iphone?

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

  1. Google Iphone 上的身份验证器应用程序不允许我添加密码 "A0B0C0D0E0F0A1B1C1D1E1F2"。它似乎有一些关于秘密密钥的本地规则。
  2. 即使我输入 Iphone 允许的密钥,speakeasy.totp 代码也无法验证,并且总是 returns 错误。
  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.

谢谢。

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