首页 > 解决方案 > bcrypt.compare 总是返回 false

问题描述

我正在尝试为我的表单创建登录身份验证。我控制台记录密码以检查我是否做错了什么,但似乎没有任何效果。谢谢!当 bcrypt.compare 将来自数据库的结果与字符串密码进行比较时,它总是返回 false。

passport.use(new LocalStrategy(
            function (username, password, done) {
                User.getUserById(username, function (err, user) {
                    if (!user.length) {
                        return done(null, false, { message: 'Invalid Credentials! Please try again.' });
                    }
                    else {
              
                        bcrypt.compare(password, user[0].password, function (err, res) {
                             return console.log(res)
                            if (err) return done(err);
                            if (res == true) {
                                User.getUserType(username, function (err, res1) {
                                    return done(null, res1[0]);
                                });
                            }
                            else {
    //                          return done(null, false, { message: 'Invalid Credentials! Please try again.' });
                                return console.log("thank you, i see error")
                            }
                        });
                    }
    
    
    
    
                });
            }));

所以 return console.log(res) 总是给出 false。对解决方案有任何想法吗?

标签: javascriptnode.jsbcrypt

解决方案


推荐阅读