我想编写一个 JavaScript 应用程序,例如 Authy 或 Google Authentificator。遗憾的是,我没有找到任何信息如何计算实际 PIN(一次性密码)的 key 以使用它进行登录。
我知道,我必须将此 key 与实际时间戳一起使用,但不知道如何组合 key 和时间戳,然后生成 Google Authentificator 和 Authy 可以生成的 6 位 OTP。
如果我在 Google 中激活两因素身份验证,我会收到一个二维码,该二维码会生成如下链接
otpauth://totp/Google%3Asome.name%40googlemail.com?secret=x6wup537ptmmohbjkczluxit4r6eppfc&issuer=Google
所以x6wup537ptmmohbjkczluxit4r6eppfc是 secret key 。我必须做什么才能从中获取 OTP,该 OTP 确实可以与 Google 帐户一起登录?
最诚挚的问候和感谢, 凯撒猕猴桃
最佳答案
我从搜索结果中得出这个问题,因为我正在寻找一个可以完成问题(来自标题)所要求的内容的库。经过更多搜索后,我发现了一个 npm 模块可以做到这一点 - https://www.npmjs.com/package/otplib 。如果您查看演示,您会发现它为您提供了一个 token 。从该模块的文档中您可以看到,为了获得 pin,您可以使用:
const token =authenticator.generate(secret);
关于javascript - 如何在 JavaScript 中将 otpauth key 转换为 otp pin?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34159026/