Ich habe passport.js
zwei Tage lang Informationen und Beispiele gelesen , bin mir aber nicht sicher, ob ich danach den gesamten Prozess der Authentifizierung durchgeführt habe.
Woher weiß ich, ob ich angemeldet bin? Ich habe beispielsweise eine Navigationsleiste mit einer Anmelde- oder Abmeldeschaltfläche. Gibt es unten eine Variable wie Code?
if (login)
<button>logout</button>
else
<button>login</button>
node.js
express
passport.js
RMontes13
quelle
quelle
app.get
,app.post
usw. Wenn Sie verschiedene Funktionen benötigen, dann sollten Sie es in Einzelheiten in Ihrer Frage erklären , als auch, was Sie erreichen wollen.Wenn Sie es in Ihren Vorlagen verwenden möchten, da Ihr Codebeispiel darauf hinweist, dass Sie Middleware wie diese erstellen können:
Platzieren Sie diesen Code irgendwo, nachdem Sie den Pass eingerichtet haben.
Und dann verwenden Sie es in Ihrer Vorlage (swig Beispiel)
quelle
app.use(function(req,res,next){
res.locals.login = req.isAuthenticated();
res.locals.user = req.user;
next();
});
isAuthenticated
bei der nächsten Anfrage false aus. Könnten Sie helfen, diese Frage zu beantworten stackoverflow.com/questions/42842171/…Ich habe nach einer solchen Lösung gesucht und bin auf diese Seite gestoßen. Die Frage ist, wie der Anmeldestatus auf der Clientseite überprüft werden kann.
Nach dem Anmelden verstecke ich die Schaltfläche Anmelden und zeige die Schaltfläche Abmelden. Bei der Seitenaktualisierung wird erneut die Anmeldeschaltfläche anstelle der Abmeldeschaltfläche angezeigt. Die einzige Lösung besteht darin, ein Element in sessionStorage zu speichern, wenn Sie session verwenden (und localStorage, wenn Sie JWT verwenden). Löschen Sie dieses Element, wenn Sie sich abmelden. Überprüfen Sie dann bei jedem Laden der Seite dieses sessionStorage-Element und führen Sie es entsprechend aus.
quelle
Verwenden Sie den folgenden Code in app.get () oder router.get ()
quelle
Es ist nicht explizit dokumentiert, aber es gibt eine
isAuthenticated()
Methode, diereq
per Pass eingefügt wird .Kann wie folgt verwendet werden:
quelle
Gute Frage, ich hatte einige Probleme beim Versuch, so etwas zu implementieren. Wenn eine nicht authentifizierte Anforderung vorliegt, überspringt der Lenker den if-Block, wenn die Variable res.locals einen falschen Wert zurückgibt. Um dieses Problem zu lösen, müssen Sie eine Middleware in Ihrer app.js-Datei einrichten, um den req.user global in Ihrer App verfügbar zu machen.
});
In Ihrer Header-Datei können Sie diese Prüfung für authentifizierte Benutzer durchführen und entsprechende Inhalte wie folgt anzeigen.
quelle