Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie authentifiziere ich mich in node.js, das ich von meiner Website aus verwenden kann?

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.