我输入的密码和数据库密码相同,然后函数也返回 false。这里的比较方法无法正常工作。每次提供正确的密码时,我都会得到错误的返回值。
app.post('/login', (req, res) => {
const username = req.body.username;
const password = req.body.password;
db.query('SELECT * FROM dataa WHERE username = ?',[username], function (error, rows, fields) {
if (error) {
// console.log("error ocurred",error);
res.send({
"code":400,
"failed":"error ocurred"
})
}else{
// console.log('The solution is: ', results);
if(rows.length >0){
console.log(bcrypt.compareSync(password, rows[0].password));
if(bcrypt.compareSync(password, rows[0].password)){
res.send({
"code":200,
"success":"login sucessfull"
});
}
else{
res.send({
"code":204,
"success":"Email and password does not match"
});
}
}
else{
res.send({
"code":204,
"success":"Email does not exits"
});
}
}
});
})
最佳答案
您的数据库中可能有多个用户名,这些用户名与您提供的用户名相匹配,因此它会尝试将其与第一个用户名匹配,但密码将是不同的..
关于mysql - 无法比较我的数据库密码和输入字段密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53995765/