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. エラー:ホスト'localhost:27017'でコマンド'saslStart'を実行しようとしたときにネットワークエラーが発生しました

    2. MongoDbのグローバル自動インクリメントフィールド

    3. MongoDB C#Aggregation-unwind-> groupBy

    4. Mongoose pre.save()非同期ミドルウェアが期待どおりに機能しない