0

所以很明显我正在使用 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;如果我 console.log result[0].password,我会找回我的散列密码,这很好,但为什么它总是返回 false?

4

1 回答 1

0

我建议您尝试将 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);
         }); 
    });
于 2019-12-09T21:17:32.247 回答