.authenticate
を変更するだけで済みます 方法。データベースへの接続は非同期操作である(またはそうあるべきである)ため、promise
を追加する必要があります オブジェクト(すべての認証ドキュメント
を参照してください 。
user
に対応するユーザーデータを持つORMがあると仮定します username
のオブジェクト およびpassword
属性(私の例ではマングースエンジンを使用します)、これはどのように見えるかです:
.authenticate( function (login, password) {
var promise = this.Promise(); /* setup promise object */
/* asynchrnously connect to DB and retrieve the data for authentication */
db.find({ username:login }, function(err, user) {
if (err)
return promise.fulfill([err]);
if ((!user) || (user.password != password))
return promise.fulfill(['Incorrect username or password!']);
promise.fulfill(user);
});
return promise; /* return promise object */
})
私はそれをテストしませんでしたが、ドキュメントによるとそれは動作するはずです。エラーは配列に保持されることになっていることに注意してください。
ちなみに、パスワード方式のみを使用している場合は、ハエに対して大砲を使用する必要はありません。 :)独自の(必ずしも完璧ではありませんが、機能する)認証メカニズムを作成するのは本当に簡単です。これを行う方法がわからない場合は、それを学ぶ必要があります。認証とセキュリティは一般的にすべてのウェブアプリで非常に重要であるため、将来的にはメリットがあります。