Sie müssen nur .authenticate
ändern Methode. Da die Verbindung zur Datenbank ein asynchroner Vorgang ist (oder sein sollte), müssen Sie promise
hinzufügen -Objekt (siehe everyauth-Dokumentation
). ).
Angenommen, Sie haben ein ORM mit Benutzerdaten, die user
entsprechen Objekt mit username
und password
Attribute (in meinem Beispiel verwende ich die Mungo-Engine), so könnte es aussehen:
.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 */
})
Ich habe es nicht getestet, aber laut Dokumentation sollte es funktionieren. Denken Sie daran, dass Fehler im Array gespeichert werden sollen.
Übrigens:Wenn Sie nur die Passwortmethode verwenden, müssen Sie keine Kanone gegen eine Fliege einsetzen. :) Das Schreiben eines eigenen (nicht unbedingt perfekten, aber funktionierenden) Authentifizierungsmechanismus ist wirklich einfach, und wenn Sie nicht wissen, wie das geht, sollten Sie es lernen. Es wird in Zukunft davon profitieren, denn Authentifizierung und Sicherheit im Allgemeinen sind in jeder Web-App sehr wichtig.