In einer Express-Knoten-App, die die Pass-Bibliothek zur Authentifizierung verwendet, konvertiere ich den Sitzungsspeicher von MemoryStore zu connect-couchdb. Die Anmeldeseite ist jetzt flockig und ich denke, dass der neue Sitzungsspeicher langsam genug ist, dass er ein Rennen markiert hat.Sicherstellen, dass der Sitzungsspeicher vor der Login-Weiterleitung fertig ist
Ich benutze die 'successReturnToOrRedirect: /' Option im Pass, und die 'Sitzung bekommen' für/tritt auf, bevor der 'Session Set' in die Datenbank geschrieben hat. Ich habe ein paar extra Logging über die Connect-Couchdb und Passcode verwendet, um dies zu bestätigen.
Gibt es eine Möglichkeit, sicherzustellen, dass req.session.save aufgerufen wird und abgeschlossen wird, bevor res.redirect als Teil des Erfolgs im Pass aufgerufen wird? Der optionale Rückruf, den Sie in authenticate() übergeben können, ersetzt die gesamte integrierte Behandlung, ich habe auf eine Lösung gehofft, wo sie erweitert werden kann.
posted Auch here
Das Problem hierbei ist, dass passport.js mit dem niedrigen Niveau Detail Umgang Authentifizierung der Überprüfung, und es gibt keine Möglichkeit, manuell req.session.save aufrufen, bevor es Umleitungen (auf Erfolg). Sie können mit einem Rückruf konfigurieren, aber dies ersetzt den gesamten Handler. –
Sehen Sie sich zum Beispiel strategie.success unter https://github.com/jaredhanson/passport/blob/master/lib/middleware/authenticate.js an –