У меня проблема с функцией сравнения в b crypt, у меня соленый пароль. Я не могу получить его для сравнения пароля с зашифрованным паролем в базе данных, вот мой код ...
router.post('/login', (req, res) => {
let userName = req.body.userName;
let password = req.body.password;
connection.query(
SELECT_ALL_USERS_QUERY + ' WHERE userName=?',
[userName],
(err, results, fields) => {
if (results[0].password) {
bcrypt.compare(password, results[0].password, (err, result) => {
console.log(password);
console.log(results[0].password);
if (result) {
res.send();
} else {
return res.status(400).send();
}
});
}
}
);
});
router.post('/add', (req, res) => {
const {
firstName = req.body.firstName,
lastName = req.body.lastName,
userName = req.body.userName,
password = req.body.password,
email = req.body.email
} = req.query;
const salt = 16;
bcrypt.hash(password, salt, (err, hashPass) => {
if (err) throw err;
const INSERT_USERS_QUERY =
'INSERT INTO users (' +
'firstName, lastName, userName, password, email) values(' +
`'${firstName}','${lastName}','${userName}','${hashPass}','${email}')`;
connection.query(INSERT_USERS_QUERY, (err, results) => {
if (err) {
return res.send(err);
} else {
return res.send('Successfuly added user');
}
});
});
});
Может ли кто-нибудь мне помочь ..