javascript - 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。对解决方案有任何想法吗?