Connecter la session non définie lors du chargement d’une nouvelle page.

Je suis un peu nouveau dans les sessions et maintenant, lorsque j’essaie de les utiliser, la session est toujours indéfinie lorsque je passe à la page suivante après un exemple de connexion réussie.

Si ma connexion est réussie, je fais ce qui suit

var session = req.session; session.user_id = Ssortingng(item._id); session.user_secure = security.security(session.user_id); 

Puis je redirige vers une autre page:

 res.writeHead(302, { 'Location': '/backstageArea' }); res.end(); 

Et puis j’essaie de finir la session en faisant ceci:

 var session = req.session; console.log("uid: " + Ssortingng(session.user_id)); console.log("hid: " + session.user_secure); 

ce qui rend la session indéfinie.

Ce sont mes trois dernières choses dans mon app.configure:

 app.use(express.cookieParser()); app.use(express.session({secret: 'secret', store: store, key: 'sid', cookie:{secure:true}})); app.use(app.router); 

Est-ce que c’est parce que je redirige vers une nouvelle page que je perds la session? Ou est-ce que je fais autre chose à tort?

En utilisant le cookie:{secure:true} , vous indiquez à votre application express et à vos navigateurs d’envoyer ce cookie via https uniquement .

Donc, si vous n’utilisez pas https , vous pouvez supprimer secure: true


Les cookies sécurisés sont une fonctionnalité utile pour protéger vos cookies sensibles des attaques mand-in-the-middle. Ils sont beaucoup plus utiles lorsque vous utilisez http et https sur le même domaine.

Si vous souhaitez utiliser https sur via nginx ou apache , vous aurez peut-être besoin des éléments suivants:

 app.set('trust proxy', true); // if remove this line, express will refuse to send https cookie to nginx or apache 
 var session = req.session; session.user_id = Ssortingng(item._id); session.user_secure = security.security(session.user_id); 

éditer pour

 req.session.user_id = Ssortingng(item._id); req.session.user_secure = security.security(session.user_id);