我还是Node和这个包的新手
var bcrypt = require('bcrypt');
const saltRounds = 10;
var pw = MyPlainTextPassword
var sql = 'load hashed password from DB;
con.query(sql, function (err, result) {
if (err) throw err;
bcrypt.compare(pw, result[0].password).then(function (res) {
if (res == 'true' || res == 'True'){
//create login token
} else{
console.log('Incorrect user ID or Password');
}
});
});
环顾四周,其他遇到此问题的人说,问题在于数据库没有存储完整的哈希;但是,该条目的数据库最多可以存储VarChar(128)(哈希值永远不会超过60),字符集为UTF-8。其他问题是它不同步,因此在IF块期间没有响应,我使用'.then'块解决了这个问题,所以我知道它是同步的,并且我知道答案存储为'false' 。我怀疑问题可能与散列的存储方式有关:
bcrypt.hash(params_[4], saltRounds, function(err, hash) {
con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
con.query 'insert query', function (error,results,fields) {
if (error) throw error;
console.log('New user Created on ' + date);
});
});
});
为什么这仍然总是返回false?