Expressjs session only persists on localhost

I've got a simple web-page created in node/express which has a simple login system. The way i'm testing if a user has logged in, is basically a check to see if req.session.user exist, which is created at login, and the session is destroyed on logout.

This works great as long as the client connects to http://localhost:8000, however, if i connect to http://10.0.1.6:8000 a new session object is created on every request, which means i can never check if the user actually has logged in.

Why is this? I need to connect to http://10.0.1.6:8000 as I'm testing my client from android (where localhost is the android device, not my server/computer).

Silly me, gotta stop programming when tired. I was running the index.html file locally, instead of from the server (cross-domain cookies? i laugh in your face!)

You can try to set up a session with your app

var app = express.createServer();
[...]
app.use(express.cookieParser(...));
app.use(express.session(...));

According to the docs you also have to use cookieParser() before you set up your session

  • http://expressjs.com/guide.html
  • http://www.senchalabs.org/connect/middleware-session.html