2011-07-26 4 views
2

J'ai un problème avec Express sous Node.js. J'essaie d'utiliser des sessions pour stocker les détails d'authentification lorsqu'un utilisateur se connecte. Le problème que j'ai est qu'une fois qu'un utilisateur est connecté, tous les autres visiteurs sont également connectés sous le même utilisateur, même s'ils sont sur un séparer la machine sur un réseau séparé.Les sessions Express.js persistent entre utilisateurs sur des machines différentes sur des réseaux distincts?

Il me semble que cela fonctionne plus comme un magasin de données d'application qu'un magasin de session. Est-ce que je fais quelque chose de mal? Il me semble que je fais quelque chose de stupide quelque part!

J'utilise ce code dans app.configure:

app.use(express.cookieParser()); 
app.use(express.session({secret: 'supersecretkeygoeshere'})); 

Et j'obtenir et définir mes variables de session comme ceci:

var user = express.session.userId; 

Cheers,

Nathan

Répondre

9

Ce n'est pas comme ça que vous utilisez des sessions, utilisez la session var sur un objet de requête:

app.get('/login', function(req, res){ 
    user = loadUser(req.body.username, req.body.password) 
    req.session.userId = user.id 
}) 

voir docs:

Hope that helps: D

+3

Aha, je vous remercie! C'est req.session au lieu de express.session. C'est logique, et rétrospectivement je n'ai aucune idée de comment je pensais que c'était exprès! – nkunicki

Questions connexes