Il vous suffit de modifier .authenticate
méthode. Étant donné que la connexion à la base de données est (ou devrait être) une opération asynchrone, vous devez ajouter promise
objet (voir documentation everuauth
).
En supposant que vous ayez un ORM avec des données utilisateur correspondant à user
objet avec username
et password
attributs (dans mon exemple, j'utiliserai le moteur de mangouste), voici à quoi cela peut ressembler :
.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 */
})
Je ne l'ai pas testé, mais d'après la documentation, cela devrait fonctionner. N'oubliez pas que les erreurs sont censées être conservées dans un tableau.
Au fait :si vous utilisez uniquement la méthode du mot de passe, vous n'avez pas besoin d'utiliser un canon contre une mouche. :) Écrire votre propre mécanisme d'authentification (pas nécessairement parfait, mais fonctionnel) est vraiment simple et si vous ne savez pas comment faire cela, vous devriez l'apprendre. Cela en bénéficiera à l'avenir, car l'authentification et la sécurité en général sont très importantes dans chaque application Web.