/ / Durée de la session connect-mongo / Express.js - node.js, mongodb, session, cookies, express

Durée de la session Express.js et connect-mongo - node.js, mongodb, session, cookies, express

J'utilise express.session avec connect-mongo pour stocker les sessions utilisateur. Je fixe le cookie maxAge à 2 semaines à partir de maintenant, mais ce que je veux, c’est que si l’utilisateur est actif au cours de ces 2 semaines, la session s’étend sur 2 semaines supplémentaires. Ainsi, quand il est inactif pendant 2 semaines, sa session est supprimée (le cookie et la session en mongo). Mais le problème est que la session est mise à jour dans MongoDB lorsqu’il visite une page, mais le cookie expirera dans 2 semaines et ne changera pas "s" expirera ". Ceci est mon code:

app.use(express.session({
secret: "superSecretKey",
cookie: {maxAge: 3600000*24*14},
store: new MongoStore({
mongoose_connection: mongoose.connections[0],
db: "myDb"
})
}));

Comment puis-je atteindre ce que je veux? Merci!

Réponses:

2 pour la réponse № 1

Je l'ai finalement résolu, vous devez utiliser un middleware pour mettre à jour les données de la session afin que le cookie soit renvoyé, comme ceci:

app.use(function(req, res, next) {
req.session._garbage = Date();
req.session.touch();
next();
});

De cette façon, maxAge mettra à jour le cookie et la session à chaque demande adressée à l'application.