Gemäß diesem ArtikelExpress Passport.js: req.user VERSUS req.session.passport.user
http://toon.io/understanding-passportjs-authentication-flow/
es sieht aus, als ob PassportJS/Express die an zwei Stellen angemeldeten Benutzer speichern
req.user
und
req.session.passport.user
warum beide? Welches sollte ich verwenden? Wenn ich mich mit einem Pass abmelde, zerstört es sowohl req.user als auch req.session.passport.user?
Würde 'req.session.passport.user' nicht tatsächlich Informationen aus der Sitzung selbst (nicht aus dem Sitzungscookie) abrufen? Ich könnte mich irgendwie geirrt haben, aber wenn Sie nicht Sessions deaktiviert haben, wird 'req.user' nicht wirklich nur' req.session.passport.user' zugeordnet? Ich kann nicht sehen, wie die beiden wirklich jemals anders sein würden. Wenn Sie nun tatsächlich Daten im Cookie speichern (im Gegensatz zur Sitzungs-ID) und dann über 'req.cookies' auf diese Daten zugreifen, dann könnte es sicherlich veraltet sein, aber das ist ein ganz anderes Szenario. – nextgentech
Nein - 'req.session.passport.user' wird aus dem Sitzungscookie abgerufen (nirgendwo anders). So funktioniert es mit der Cookie-basierten Sitzungsauthentifizierung, es sei denn, Sie verwenden ein anderes Formular. – rdegges
Vielleicht reden wir über verschiedene Dinge, aber das macht keinen Sinn im Zusammenhang mit einem MemoryStore oder serverbasierten Session Storage. Bei Verwendung eines serverseitigen Sitzungsspeichers speichert der Sitzungscookie (der an den Browser gesendet wird) nur die Sitzungs-ID. Alle Daten bleiben auf dem Server. Der Hauptpunkt einer Sitzung besteht darin, Daten für einen bestimmten Benutzer auf dem Server verfügbar und aktuell zu halten. Der Sitzungscookie erlaubt nur einem Browser, mit einer bestimmten Sitzung verbunden zu bleiben. Der Zugriff auf Daten über "req.session" enthält immer die neuesten Sitzungsinformationen. – nextgentech