/ / passport.js mit mehreren Authentifizierungsanbietern? - node.js, passport-facebook, passport.js

pass.js mit mehreren Authentifizierungsanbietern? - node.js, Reisepass-facebook, pass.js

Mit Passport.js gibt es eine Möglichkeit, mehrere Authentifizierungsanbieter für dieselbe Route anzugeben?

Kann ich zum Beispiel (aus dem Reisepass) lokale und Facebook- und Twitter-Strategien für die Beispielroute verwenden?

app.post("/login",
passport.authenticate("local"), /* how can I add other strategies here? */
function(req, res) {
// If this function gets called, authentication was successful.
// `req.user` contains the authenticated user.
res.redirect("/users/" + req.user.username);
});

Antworten:

60 für die Antwort № 1

Die Middleware von Passport ist so aufgebaut, dass Sie mehrere Strategien gleichzeitig verwenden können passport.authenticate(...) Anruf.

Es wird jedoch mit einer ODER-Bestellung definiert. Dies wird nur dann fehlschlagen, wenn keine der Strategien zum Erfolg geführt hat.

So würden Sie es verwenden:

app.post("/login",
passport.authenticate(["local", "basic", "passport-google-oauth"]), /* this is how */
function(req, res) {
// If this function gets called, authentication was successful.
// `req.user` contains the authenticated user.
res.redirect("/users/" + req.user.username);
});

Mit anderen Worten, die Art und Weise der Verwendung besteht darin, ein Array zu übergeben, das den Namen der Strategien enthält, mit denen sich der Benutzer authentifizieren soll.

Vergessen Sie nicht, zuvor die Strategien festzulegen, die Sie implementieren möchten.

Sie können diese Informationen in den folgenden github-Dateien bestätigen:

Authentifizieren Sie sich entweder mit basic oder digest im Multi-Auth-Beispiel.

Definition des Passports für authenticate.js