我正在尝试在新的 NodeJS 侧项目中添加双因素身份验证。为此,我使用 Error Screenshot 模块。
首先,我为我的用户生成新的秘密:
const secret = authenticator.generateSecret()
并显示使用 Google Auth 应用程序或 FreeOTP 进行扫描的二维码:
const test = "lorem@ipsum.fr"
const service = "myawesomeapp"
const otpauth = authenticator.keyuri(test, service, secret)
const qrcode = await QRCode.toDataURL(otpauth)
二维码正确生成并被 Google Auth 和 FreeOTP 识别。但是,verify
方法总是返回 false
:
const isValid = authenticator.verify({ secret, token }) // secret is the previously generateSecret() and the token is the code show on Google Auth/FreeOTP app
它总是错误的。我认为我必须做错一些事情,但我不明白问题出在哪里。
有人已经在 NodeJS 中使用了 2FA 吗?
感谢社区!