Ändern des Cookie-Ablaufs in Express

8

Da ich beim Aufruf von expressServer.use(express.session({params})) kein maxAge definiert habe, wird der Ablauf des Cookies als "Sitzung" festgelegt.

Ich möchte eine "Remember me" -Funktion hinzufügen, wenn ich mich anmelde. Wenn "remember me" ausgewählt ist, wird der Ablauf auf einen Monat verlängert.

Wie würde ich das machen? Ich habe versucht, einfach die maxAge zu erweitern, aber das schien nichts zu tun ...

%Vor%

Danke für die Hilfe!

** BEARBEITEN **

Ich habe versucht, einen einfachen Server zum Testen des Cookie eines Benutzers zu testen. Ich benutze Express 3.0.4

Wenn ich 127.0.0.1:9000/blah besuche, ist das Feld "abläuft" des Browser-Cookies immer noch "Sitzung" ...

%Vor%

Grrrrrrr ....

    
user1161657 27.12.2012, 04:15
quelle

5 Antworten

11

Ich habe eine Checkbox mit der Aufschrift "remember me" auf der Seite / login:

%Vor%

Dann mache ich auf meiner POST-Route nach / login eine Plausibilitätsprüfung und setze die Sitzung, wenn req.body.remember gesetzt ist, ansonsten ist es nur eine Fenstersitzung:

%Vor%

Fügen Sie die folgenden Zeilen (ich verwende redis) in app.js hinzu:

%Vor%     
chovy 27.12.2012 04:55
quelle
5

Wenn Sie in Express 4 Rollensitzungen mit Cookie-Sitzungen implementieren möchten, konfigurieren Sie die Middleware wie folgt:

%Vor%

Beachten Sie, dass Sie die Option expires nicht festlegen müssen.

Um Ihre Sitzung zu erweitern, ändern Sie sie einfach wie folgt:

%Vor%

Beachten Sie, dass es in Express 4 kein req.session.touch() gibt.

    
borisdiakur 25.03.2015 12:52
quelle
3

Setzen Sie den Cookie-Namen auf value, wobei es sich um eine Zeichenfolge oder ein Objekt handeln kann, das in JSON konvertiert wurde. Die Pfadoption ist standardmäßig auf "/" eingestellt.

%Vor%

Für weitere Referenzen kann der folgende Link verwendet werden

Ссылка

    
AmirtharajCVijay 21.08.2013 09:20
quelle
2

Ich habe eine Antwort gefunden, die für mich zu funktionieren scheint. füge es oben auf deinen Routen hinzu.

%Vor%     
Hitchcott 14.08.2013 11:11
quelle
0

Oder Sie können es versuchen, es hat für mich funktioniert:

%Vor%     
sumitjainjr 20.11.2017 16:10
quelle