MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Resetowanie hasła w NodeJS

Nie znalazłem (lub nie znalazłem) żadnego problemu z twoim kodem, ale mam sugestię, aby prześledzić błąd.

Ten blok kodu jest ryzykowny. Możesz przypadkowo zaktualizować pole hasła i uruchomić proces ponownego mieszania hasła.

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();
      });
   });
});

Umieść console.log zaraz po if (!user.isModified('password')) aby sprawdzić nieoczekiwaną aktualizację hasła. Teraz spróbuj ponownie zapomnieć hasło i sprawdź, czy jest tam jakiś błąd.

*TD;LR Oddziel hasło aktualizacji do nowej metody zamiast umieszczania go we wstępnym zapisie, ponieważ możesz przypadkowo zaktualizować nowe hasło wraz z innymi polami

*Aktualizacja:dziękuję #imns za sugerowanie lepszego numeru SALT_FACTOR.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Zapytanie o zakres MongoDB dla całej wartości osadzonego dokumentu

  2. dostęp do asocjacji ember js backend nodejs mongoose

  3. Repozytorium Spring automatycznie rzuca encje z różnymi typami klas

  4. Jak przekonwertować listę casbah mongodb na json w scala / play

  5. jak zastąpić wiele wystąpień frazy mongodb