Всем привет. Столкнулся с такой проблемой. Я делаю логин, где сравниваются пароли(из БД и введенный пользователем). Но у меня выдает false, я уже проверял, пароль точно такой же. У меня все данные печатаются в консоли при регистрации
и логине для дебага. Ну так вот, пароли точно одинаковые.
Хеширую пароль с помощью Bcrypt. Соль присутствует в хеше.
Код для хеширования при регистрации
bcrypt.hash(password, saltRounds, async function (err, hash) {
// Store hash in database here
console.log(hash); // debug
let post = {
name: `${name}`,
email: `${email}`,
password: `${hash}`
} // Структура данных для сервера
let sql = "INSERT INTO users SET ?" // Writing data to the DB
try {
let query = await dbConnection.query(sql, post);
return res.json({
"status": "ok",
"location": "/home"
});
} catch (err) {
console.log(err)
return res.json({
"status": "error",
"error": "Произошла ошибка сервера. Попробуйте позже"
});
}
});
Фрагмент кода из логина
const [users] = await dbConnection.query(
"SELECT `password` FROM `users` WHERE `email`=?", [email]
)
const hash = String(users)
const match = await bcrypt.compare(password, hash);
console.log(match)
if (match) {
return res.json({
"status": "ok",
"location": "/home"
})
} else {
return res.json({
"status": "error",
"error": "Неверный пароль"
})
}