簡體   English   中英

Bcrypt NodeJS 比較密碼總是返回 false

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM