Devi solo modificare .authenticate
metodo. Poiché la connessione al database è (o dovrebbe essere) un'operazione asincrona, è necessario aggiungere promise
oggetto (vedi everyauth documentazione
).
Supponendo che tu abbia un ORM con dati utente corrispondenti a user
oggetto con username
e password
attributi (nel mio esempio userò il motore mongoose), ecco come potrebbe apparire:
.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 */
})
Non l'ho testato, ma secondo la documentazione dovrebbe funzionare. Ricorda che gli errori dovrebbero essere mantenuti in array.
A proposito:se stai usando solo il metodo della password, non è necessario, sai, usare un cannone contro una mosca. :) Scrivere il proprio meccanismo di autenticazione (non necessariamente perfetto, ma funzionante) è davvero semplice e se non sai come farlo dovresti impararlo. Ne trarrà vantaggio in futuro, perché l'autenticazione e la sicurezza in generale sono molto importanti in ogni app Web.