mysql - 无法比较我的数据库密码和输入字段密码
问题描述
我的输入密码和数据库密码相同,然后函数也返回 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"
});
}
}
});
})
解决方案
您的数据库中可能有多个用户名,这些用户名与您提供的用户名匹配,因此它会尝试将其与第一个用户名匹配,但密码将是不同的..
推荐阅读
- python - 在python中的点之间绘制网格线
- python - 如何使用 Selenium 和 Python 单击具有 onclick 属性的基于 javascript/AJAX 的元素
- oracle - Oracle - 获取游标中的函数参数值
- javascript - 字符串“<3”和“:)”的正则表达式模式是什么?
- c - 如何使用适用于 Windows 和 Android 的 Makefile 构建 SDL2
- sql - 使用 SQL 按时间对记录进行聚类
- linux - 如何查找目录中特定文件的磁盘使用总量
- ruby-on-rails - 使用 Rails Rspec 进行测试 - 预期和得到的不匹配
- java - JDK 11 可以自动更新吗?
- javascript - 用户输入时如何在表中动态添加一行(postman-style-reactive-table)