Você só precisa modificar
.authenticate
método. Como a conexão com o banco de dados é (ou deveria ser) uma operação assíncrona, você precisa adicionar promise
objeto (consulte a documentação de cada autenticação
). Supondo que você tenha algum ORM com dados de usuário correspondentes a
user
objeto com username
e password
atributos (no meu exemplo vou usar o motor mangusto), é assim que pode ficar:.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 */
})
Não testei, mas de acordo com a documentação deve funcionar. Lembre-se de que os erros devem ser mantidos em array.
A propósito:se você estiver usando apenas o método de senha, não há necessidade de usar um canhão contra uma mosca. :) Escrever seu próprio mecanismo de autenticação (não necessariamente perfeito, mas funcionando) é muito simples e se você não sabe como fazer isso, deveria aprender. Ele se beneficiará no futuro, porque a autenticação e a segurança em geral são muito importantes em todos os aplicativos da web.