Ich habe eine Node/Express Anwendung, die redis als Session-Speicher verwenden.Node/Express mit Connect-Redis, wie behandeln Sitzungsablauf
Ich habe eine Frage bezüglich der Handhabung der Ablauf der Sitzung.
Ich möchte eine aktive Sitzung haben, bis der Browser geschlossen ist, also habe ich keine Sitzungsablaufzeit festgelegt.
Das Session-Cookie funktioniert gut, aber ich habe Zweifel an Redis.
Es scheint, dass das in Redis DB gespeicherte Paar Schlüssel/Wert niemals abläuft.
Wie ist der richtige Weg, damit umzugehen?
Es gibt eine Möglichkeit, redis so zu konfigurieren, dass ein Wert gelöscht wird, der mit einer bestimmten Leerlaufzeit gespeichert wurde.
Oder ist besser eine TTL gesetzt, wenn die connect-redis in der Anwendung aufgerufen wird?
tatsächliche Konfiguration der Sitzung in der Anwendung:
var session = require('express-session');
var RedisStore = require('connect-redis')(session);
app.use(session({
store: new RedisStore({port:6379, host: 'localhost'}),
secret: "my-secret-here",
resave: false,
saveUninitialized: true }));
Die Methode touch() setzt cookie.maxAge? Session Cookie hat jedoch keine maxAge gesetzt. Der Cookie läuft ab, wenn der Browser geschlossen wird. Vielleicht könnte ich eine TTL für die Daten in Redis DB und verwenden Sie etwas wie eine store.touch(), um die TTL zu aktualisieren. Das könnte richtig sein? – Zauker
Ich habe versucht, einen Redis-TTL-Wert festzulegen, der von Ihnen vorgeschlagene Befehl req.session.touch() funktioniert einwandfrei. Es aktualisiert die Idletime des in Redis DB gespeicherten Schlüssels. Vielen Dank. – Zauker