首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用护照-2FA-totp验证google认证代码?

如何使用护照-2FA-totp验证google认证代码?
EN

Stack Overflow用户
提问于 2019-02-25 11:26:48
回答 1查看 2K关注 0票数 2

我正在使用passportjs模块pass-2af-totphttp://www.passportjs.org/packages/passport-2fa-totp/实现两个因素的身份验证。

我能够成功注册用户并存储其密钥。

我无法验证由google身份验证程序生成的totp代码,我使用以下代码作为参考,

`passport.use(新TwoFAStartegy(函数(用户名、密码、已完成)){

代码语言:javascript
复制
// 1st step verification: username and password

User.findOne({ username: username }, function (err, user) {
    if (err) { return done(err); }
    if (!user) { return done(null, false); }
    if (!user.verifyPassword(password)) { return done(null, false); }
    return done(null, user);
});}, function (user, done) {
// 2nd step verification: TOTP code from Google Authenticator

if (!user.secret) {
    done(new Error("Google Authenticator is not setup yet."));
} else {
    // Google Authenticator uses 30 seconds key period
    // https://github.com/google/google-authenticator/wiki/Key-Uri-Format

    var secret = GoogleAuthenticator.decodeSecret(user.secret);
    done(null, secret, 30);
}}));`

我无法理解核查的第二步。首先,这里我无法访问需要验证的code字段,而且我也无法获取任何适当的输出。它只是把Invalid username or password还给我,但事实并非如此。

帮帮我!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-27 14:25:58

请检查是否只在这些字段中获取usernamepasswordcode,而不是在任何其他字段中,因为passport-2fa-totp假定您只进入这些字段。

code字段将传递给TwoFAStartegy的第二个回调,verify fn将验证代码。

也许,如果你这么做,你可以得到更多的信息,

代码语言:javascript
复制
new TwoFAStartegy({ passReqToCallback: true }, (username, password, done) => 
{
// First Callback
}, (req, user, verify) => {
console.log(req) // The request Object
// Use req here
})

(请告诉我这是否有帮助:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54865178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档