Régénérer les ID de session avec Nodejs Connect

J'utilise un serveur Node.js et je développe avec le framework Connect. J'essaie de régénérer les SID après un intervalle donné pour éviter la fixation de la session. Il existe une méthode appelée req.session.regenerate qui, selon les documents, devrait faire exactement cela.

«Pour régénérer la session, invoquez simplement la méthode, une fois que vous avez terminé une nouvelle session SID et session sera initialisée à la requête»

Exemple de code:

req.session.regenerate(function(err){ // will have a new session here }); 

Après avoir appelé la méthode ci-dessus, je vérifie la valeur de req.sessionID, uniquement pour constater que la valeur est identique à celle antérieure.

Si j'essaie d'obtenir le journal de session à partir de req.session.regenerate et de l'écrire au terminal, je reçois un nouveau SID, ce qui est encore plus perplexe. IE pourquoi voudriez-vous que le SID soit généré uniquement dans le cadre du rappel? Si j'attribue la valeur à une variable globale, sa valeur est indéfinie.

J'ai l'impression que c'est vraiment évident que je suis négligé.

Toute aide est appréciée.

Selon toute vraisemblance, votre problème est lié à ce problème:

https://github.com/senchalabs/connect/pull/263

En tout cas, le comportement que vous décrivez est exactement le même que celui indiqué dans le problème.

Envoyez simplement la réponse dans le rappel de la fonction de régénération. Étant donné que la régénération de la session est asynchrone, lorsque vous reviendrez au client, il aura encore l'ancienne session.

 req.session.regenerate(function(err) { req.session.myid = "myvalue"; res.simpleJSON(200, status); });