sql >> Database >  >> NoSQL >> MongoDB

Wachtwoord opnieuw instellen in NodeJS

Ik heb (of heb) geen enkel probleem gevonden met je code, maar ik heb een suggestie om de bug op te sporen.

Dit codeblok is riskant. U kunt per ongeluk het wachtwoordveld bijwerken en het proces voor het opnieuw hashen van het wachtwoord activeren.

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

Zet een console.log direct na de if (!user.isModified('password')) om te controleren op onverwachte wachtwoordupdates. Probeer nu opnieuw het wachtwoord te vergeten en kijk of er een bug in zit.

*TD;LR Scheid het update-wachtwoord in een nieuwe methode in plaats van het in de pre-save te plaatsen, aangezien u per ongeluk een nieuw wachtwoord samen met andere velden kunt bijwerken

*Update:bedankt #imns voor het voorstellen van een beter SALT_FACTOR-nummer.



  1. @EnableMongoAuditing voor MongoDB op Cloud Foundry / mongolab

  2. Django-sessies

  3. Keyset (Seek) paginering in Spring Data MongoDB

  4. update kolom van een collectie in mongodb