Трябва само да промените .authenticate
метод. Тъй като свързването с база данни е (или трябва да бъде) асинхронна операция, тогава трябва да добавите promise
обект (вижте документацията за Everyyauth
).
Ако приемем, че имате някакъв ORM с потребителски данни, съответстващи на user
обект с username
и password
атрибути (в моя пример ще използвам mongoose engine), ето как може да изглежда:
.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 */
})
Не съм го тествал, но според документацията трябва да работи. Не забравяйте, че грешките трябва да се съхраняват в масив.
Между другото:ако използвате само метода с парола, тогава няма нужда да използвате оръдие срещу муха. :) Написването на свой собствен (не непременно перфектен, но работещ) механизъм за удостоверяване е наистина прост и ако не знаете как да направите това, трябва да го научите. Това ще бъде от полза в бъдеще, защото удостоверяването и сигурността като цяло са много важни във всяко уеб приложение.