Bcrypt NodeJS比较密码总是返回false



所以显然我正在使用bcrypt来注册和哈希我的密码,这有效。 现在我正在登录,我必须比较数据库中的表单密码和散列密码,这就是我的做法:

// Get post data
let email = req.body.email;
let password = req.body.password;
con.query("SELECT * FROM users WHERE email = ?", email, function (err, result, fields) {
bcrypt.compare(password, result[0].password, function(err, result) {
if (err) { throw (err); }
console.log(result);
});
});

它总是返回false;如果我控制台.log result[0].password,我会找回我的哈希密码,所以这很好,但为什么它总是返回false?

我建议您尝试将if语句更改为:

con.query("SELECT * FROM users WHERE email = ?", email, function (err,
result, fields) {
bcrypt.compare(password, result[0].password, function(err, result) {
if (!result) { throw (err); }
console.log(result);
}); 
});

相关内容

  • 没有找到相关文章

最新更新