MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Reset Kata Sandi Di NodeJS

Saya tidak (atau belum) menemukan masalah dengan kode Anda, tetapi saya memiliki saran untuk melacak bug tersebut.

Blok kode ini berisiko. Anda mungkin secara tidak sengaja memperbarui bidang kata sandi dan memicu proses pengulangan kata sandi.

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

Letakkan console.log tepat setelah if (!user.isModified('password')) untuk memeriksa pembaruan kata sandi yang tidak terduga. Sekarang coba lagi lupa kata sandi dan lihat apakah ada bug di sana.

*TD;LR Pisahkan kata sandi pembaruan menjadi metode baru alih-alih memasukkannya ke dalam pra-simpan karena Anda mungkin tidak sengaja memperbarui kata sandi baru bersama dengan bidang lain

*Pembaruan:Terima kasih #imns untuk menyarankan nomor SALT_FACTOR yang lebih baik.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Fungsi Buatan Pengguna Mongo dan Pengurangan Peta

  2. MongoDB Symfony2 mengembalikan kursor loggable alih-alih entitas saya

  3. Apakah mungkin untuk menentukan kunci saat memasukkan ke mongodb

  4. Luwak menemukan semua dokumen di mana array.length lebih besar dari 0 &mengurutkan data

  5. Kerangka agregasi MongoDB $kurangi