Dies ist meine Konfiguration für Sitzungen und sie funktioniert.
Zu Testzwecken habe ich die Ablaufzeit auf 5 Sekunden eingestellt.
app.use(session({
store: new redisStore({
host: 'localhost',
port: 6379,
client: redisClient,
ttl: 5 // in seconds
}),
secret: 'this is secret',
resave: false,
saveUninitialized: true,
// cookie: {maxAge: 5000}
}));
Ich setze maxAge
und es hat nicht funktioniert und wenn ich ttl
eingestellt habe es funktionierte.
Hinweis: Ich habe getestet und herausgefunden, dass ttl
ist in Sekunden, aber maxAge ist in Millisekunden! (irgendwie komisch)
Sie können Sitzungsdaten mit einer Middleware wie unten protokollieren, um zu sehen, ob ein Passport-Objekt vorhanden ist oder nicht. Wenn die Sitzungsdaten kein Passport-Objekt enthalten, wird der Benutzer abgemeldet.
app.use((req, res, next) => {
console.log('session:\n', req.session);
next();
});