U hoeft alleen .authenticate
aan te passen methode. Aangezien verbinding maken met de database een asynchrone bewerking is (of zou moeten zijn), moet u promise
toevoegen object (zie everyauth-documentatie
).
Ervan uitgaande dat je een ORM hebt met gebruikersgegevens die overeenkomen met user
object met username
en password
attributen (in mijn voorbeeld gebruik ik de mangoest-engine), zo kan het eruit zien:
.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 */
})
Ik heb het niet getest, maar volgens de documentatie zou het moeten werken. Onthoud dat fouten in de array moeten worden bewaard.
Trouwens:als je alleen de wachtwoordmethode gebruikt, dan is het niet nodig om, weet je, een kanon tegen een vlieg te gebruiken. :) Het schrijven van je eigen (niet noodzakelijk perfecte, maar werkende) authenticatiemechanisme is heel eenvoudig en als je niet weet hoe je dit moet doen, moet je het leren. Het zal in de toekomst profiteren, omdat authenticatie en beveiliging in het algemeen erg belangrijk zijn in elke web-app.