[英]Bcrypt NodeJS compare password always returning 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; 如果我使用console.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);
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.