Я пытаюсь использовать пакет npm 'bcrypt' для вставки зашифрованного пароля во время регистрации на моей базе PSQL и входа в систему пользователя.
Операции, которые я выполняю:
1)Регистрация: Вставьте имя пользователя и зашифрованный пароль в мою PostgreSQL db
createUser: function(username, password) {
bcrypt.genSalt(saltCount, function(err, salt) {
bcrypt.hash(password, salt, function(err, hash) {
query = "insert query with generated crypt password";
pool.query(query, (err, res) => {
console.log(err, res);
})
});
});
}
2) Логин пользователя: получите вставленный пароль и сравните его с зашифрованным паролем в PostgreSQL db
login: function(username, password) {
const query = "select query for get crypt passowrd on db";
pool.query(query, (err, res) => {
const dbPsw = res.rows[0].hash_psw; // db password
bcrypt.compare(password, dbPsw, function(err, result) {
if (err)
console.log(err);
else if (result)
console.log("password match");
else
console.log("not match");
});
})
}
Результат второй функциивсегда "не совпадает".
Я видел на своей базе данных PSQL, что введенный пароль первой функцией всегда отличается, я всегда вставляю один и тот же пароль для шифрования.
Так что мой вопросэто: Как я могу получить всегда один и тот же зашифрованный пароль?Возможно, я что-то не так делаю, но следую руководству на сайте npm.
Спасибо за вашу помощь.