Anda hanya perlu mengubah .authenticate
metode. Karena menghubungkan ke database adalah (atau seharusnya) operasi asinkron, maka Anda perlu menambahkan promise
objek (lihat setiap dokumentasi
).
Dengan asumsi Anda memiliki beberapa ORM dengan data pengguna yang sesuai dengan user
objek dengan username
dan password
atribut (dalam contoh saya, saya akan menggunakan mesin luwak), ini adalah tampilannya:
.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 */
})
Saya tidak mengujinya, tetapi menurut dokumentasi itu seharusnya berfungsi. Ingat bahwa kesalahan seharusnya disimpan dalam array.
Omong-omong:jika Anda hanya menggunakan metode kata sandi, maka tidak perlu, Anda tahu, menggunakan meriam melawan lalat. :) Menulis mekanisme otentikasi Anda sendiri (tidak harus sempurna, tetapi berfungsi) sangat sederhana dan jika Anda tidak tahu bagaimana melakukannya, Anda harus mempelajarinya. Ini akan menguntungkan di masa depan, karena otentikasi dan keamanan secara umum sangat penting di setiap aplikasi web.