MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Нулиране на парола в NodeJS

Не открих (или не открих) проблем с вашия код, но имам предложение за проследяване на грешката.

Този блок от код е рискован. Може случайно да актуализирате полето за парола и да задействате процеса на преразглеждане на паролата.

UserSchema.pre('save', function(next) {
   var user = this;
   var SALT_FACTOR = 12; // 12 or more for better security

   if (!user.isModified('password')) return next();

   console.log(user.password) // Check accident password update

   bcrypt.genSalt(SALT_FACTOR, function(err, salt) {
      if (err) return next(err);

      bcrypt.hash(user.password, salt, null, function(err, hash) {
         if (err) return next(err);
         user.password = hash;
         next();
      });
   });
});

Поставете console.log точно след if (!user.isModified('password')) за да проверите за неочаквана актуализация на паролата. Сега опитайте отново да забравите паролата и вижте дали има някаква грешка.

*TD;LR Отделете паролата за актуализиране в нов метод, вместо да я поставите в предварителното запазване, тъй като може случайно да актуализирате нова парола заедно с други полета

*Актуализация:Благодаря #imns за предлагане на по-добро число на SALT_FACTOR.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да прекъсна изпълнявана заявка в обвивката на MongoDB?

  2. Java:Как да вмъкна hashmap в MongoDB?

  3. Какъв е еквивалентът на командата на обвивката collection.getIndexes() в pymongo?

  4. Mongoose отказва да прехвърли валиден низ към ObjectId

  5. Актуализиране на поле със стойност от вложено поле