.authenticate
メソッドを変更するだけです。データベースへの接続は非同期操作である (または非同期操作であるべき) ため、promise
オブジェクトを追加する必要があります ( everyauth のドキュメントを参照)。
および属性をuser
持つオブジェクトに対応するユーザー データを持つ ORM があると仮定すると(この例では、mongoose エンジンを使用します)、これは次のようになります。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 */
})
私はそれをテストしませんでしたが、ドキュメントによると、動作するはずです。エラーは配列に保持されることになっていることに注意してください。
ちなみに、パスワード方式のみを使用している場合は、ハエに対して大砲を使用する必要はありません。:) 独自の (必ずしも完璧ではありませんが、動作する) 認証メカニズムを作成するのは非常に簡単です。これを行う方法がわからない場合は、それを学ぶ必要があります。一般に、認証とセキュリティはすべての Web アプリで非常に重要であるため、将来的にはメリットがあります。