現在、私のプロジェクトの認証モジュールをnode.jsに作成しようとしていますか?ハッシュを生成するためにnode.jsで使用するAsyncまたはSync bcrypt関数?
は、私はすでに、すなわち
https://github.com/bnoguchi/mongoose-auth/blob/master/lib/modules/password/plugin.js https://github.com/Turbo87/locomotive-passport-boilerplate/blob/master/app/models/account.js
しかし、何らかの理由で、彼らはbcrypt.hashSync()関数を使用している、ハッシュを生成するために、bcryptのを使用してのいくつかの例を見てきました。
User.virtual('password')
.get(function() {
return this.hash;
})
.set(function (password) {
bcrypt.hash('password', 10, function(err, hash) {
this.hash = hash;
});
});
あなたはどの方法が良いとする理由である私に説明してくださいでした:それは時間がかかりますので、bcryptのは良いですので、すなわち、代わりにコードをブロックしないようにするために、非同期機能を使用することが賢明ではないでしょうか?ありがとうございました!
+1、asyncは間違いなく正しい選択です。 MongooseのようなODMを使うときは、getterとsetterを非同期にすることができないということを覚えておいてください。そのため、いくつかの作者は代わりに同期メソッドを使用します。これは一般に間違った動きです。以前は 'setPassword'のようなモデル上でカスタムメソッドを使って非同期パスワードを設定しました。 –
@BrandonTilleyはカスタムメソッドの例を挙げることができますか? –
@loriああ、これを投稿してからしばらくしていますが、このようなものは近いと思います。https://gist.github.com/BinaryMuse/7983335 –