предварительно сохраненный мангуст bcrypt не сохранен

У меня проблема с функцией предварительного сохранения bcrypt и mongoose.

мой журнал говорит мне, что все хорошо хэшировано ... но мангуст не сохраняет новый хешированный пароль должным образом.

do post save 6BYpYJtD POST /api/v1/user 200 26.999 ms - 387 do pre save 6BYpYJtD $2a$10$OgNaou5y8JO2v4ErcZN4v.2cG9LOPjgJKzptvrKXVgCBRrrFsMHMO

чтобы прояснить ситуацию: 6BYpYJtD - это мой сгенерированный пароль, $2a$10$OgNaou5y8JO2v4ErcZN4v.2cG9LOPjgJKzptvrKXVgCBRrrFsMHMO - это хэш, сгенерированный моей функцией предварительного сохранения:

UserSchema.pre('save', function(next){
    var user = this;
        user.updated_at = Date.now;
    if(user.isModified('password'))
    {
        bcrypt.genSalt(SALT_WORK_FACTOR,function(err,salt){
            if(err) return next(err);
            bcrypt.hash(user.password,salt,function(err,hash){
                if(err) return next(err);
                console.log('do pre save',user.password,hash);
                user.password = hash;
                console.log(user.password);
                next();
            });
        });
    }

    return next();
});

нет ошибок, напечатанных, поэтому я действительно не знаю, в чем может быть моя ошибка здесь. любой совет?


person benni.games    schedule 01.11.2015    source источник
comment
поле password содержит только объявление для type: String   -  person benni.games    schedule 01.11.2015


Ответы (1)


часов часов часов отладки позже, просто нашел решение моей проблемы:

после изменения информации о пароле вам необходимо return next(user); с вашим пользовательским объектом в качестве параметра. теперь это работает как шарм.

person benni.games    schedule 02.11.2015