Comment mettre fin à une session dans ExpressJS
J'ai l'impression que cela a à être enterré quelque part dans la documentation, mais je ne le trouve pas.
Comment voulez-vous fermer ou à la fin ou tuer (quoi que) une session dans ExpressJS?
Vous devez vous connecter pour publier un commentaire.
Express 4.x mise à Jour de Réponse
Le gestionnaire de Session n'est plus intégrée dans l'Express. Cette réponse fait référence à la norme module de session: https://github.com/expressjs/session
Pour effacer les données de la session, il suffit d'utiliser:
La documentation est un peu inutile ce. Il dit:
Cela ne pas dire que la session en cours seront chargées à nouveau sur la prochaine demande. Cela signifie qu'une nouvelle session vide sera créé dans votre session magasin sur la prochaine demande. (Sans doute l'ID de session n'est pas de changer, mais je n'ai pas testé.)
Jamais l'esprit, c'est
req.session.destroy();
req.session.destroy();
comme acidghost fait.La question n'est pas de préciser de quel type de session magasin a été utilisé. Les deux réponses semblent corrects.
Pour les cookies de sessions:
De http://expressjs.com/api.html#cookieSession
Pour le Redis, etc en fonction des sessions:
De http://expressjs.com/api.html#cookieSession
Pour effacer un cookie, il suffit d'assigner la session à null avant de répondre:
À l'aide de
req.session = null;
, ne sera pas réellement supprimer la session de l'instance. La solution la plus appropriée seraitreq.session.destroy();
,mais c'est essentiellement un wrapper pour
delete req.session;
.https://github.com/expressjs/session/blob/master/session/session.js
utilisation,
Le ci-dessus ne fonctionne pas pour moi j'ai donc fait cela.
Par réglage de la date d'expiration du cookie à l'heure actuelle, la session a expiré sur son propre.
Comme mentionné à plusieurs endroits, je ne suis pas en mesure d'obtenir la req.session.détruire() fonctionne correctement.
C'est mon travail autour de .. semble faire l'affaire, et permet toujours, req.flash pour être utilisé
Si vous supprimez ou un ensemble req.session = null; , semble alors vous ne pouvez pas utiliser req.flash