Я пытаюсь установить функцию обновления для профилей пользователей в приложении Node.JS с хэш-паролями, используя модуль bcrypt-nodejs. Он работает при входе в систему, но когда я обновляю профиль, он обновляет объект пользователя с помощью обычного текста (т. Е .: я печатаю «текст» для пароля, db показывает «текст»). Я хотел бы хэш-пароль при обновлении профиля. Как я могу это исправить?NodeJS Обновление пользователя Bcrypt - Пароль не получает хешированный
Ниже мой код контроллера:
exports.editUser = function(req, res) {
// user edit form set to findonendupdate
User.findByIdAndUpdate({ _id: req.params.user_id, randString: req.body.randString }, req.body, function(err, user) {
if (err)
res.send(err);
res.json({ data: user });
});
};
Для справки это код модели пользователя, который работает с новой регистрацией пользователя:
passport.use('local', new LocalStrategy(
function(username, password, callback) {
User.findOne({ username: username } , function (err, user) {
if (err) { return callback(err); }
// No user found with that username
if (!user) { return callback(null, false); }
// Make sure the password is correct
user.verifyPassword(password, function(err, isMatch) {
if (err) { return callback(err); }
// Password did not match
if (!isMatch) { return callback(null, false); }
// Success
return callback(null, user);
});
});
}
));
Он работал отлично. Спасибо тебе за это :). –