我想在node js中实现Google 2FA身份验证。如何做到这一点?
我使用了speakeasy js库,如下所示:
const qrcode = require('qrcode'); const secret = speakeasy.generateSecret({ name: 'test'//constants.SPEAK_SECRET_CODE }); var qr_data = ''; await qrcode.toDataURL(secret.otpauth_url).then(qr => { qr_data = qr; }); return { qr_data };
在这之后,我用这个代码<img src="qr_data">
创建了html文件,并使用谷歌验证器应用程序扫描了条形码,它成功地工作了。
然后我尝试这样做,以验证谷歌otp:
var verified = speakeasy.totp.verify({ secret: secret.ascii, encoding: 'ascci', token: otp, }); console.log(verified);
但是,尽管我输入了正确的代码,但验证变量始终为假