0

Here I used the express-session to store user session but only to find that the req.session.user always undefined.

It's funny that when I used chrome plugin postman to visit, there's no problem.

so how to fix it ?

var session = require('express-session');
app.use(session({
    resave: false,
    secret: 'key',
    saveUninitialized: 
    originalMaxAge: 100000,
    cookie: {
        secure: true
    }
}));

app.use(function(req, res, next) {
    console.log(req.session.user);
    if (!req.session.user)
        req.session.user = {'zh':'123'};
    next();
});
zhoushx3
  • 101
  • 1
  • 6

3 Answers3

0

Try this,

app.use(session({
    resave: false,
    secret: 'key',
    saveUninitialized: true,
    cookie: {
        originalMaxAge: 100000,
        secure: true
    }
}));

I have never used originalMaxAge but I assume it has the similar feature as maxAge for cookie.

Reference: https://github.com/expressjs/session

tat757
  • 1
  • 2
0

You should not set the cookie:

app.use(session({
    resave: false,
    secret: 'key',
    originalMaxAge: 100000
}));

I've run on my computer, the result is what you want.

Seven
  • 360
  • 1
  • 4
  • 16
0

Try this,

app.use(session({
   secret: "your-secret",
   resave: true,
   saveUninitialized: true,
   cookie: {
      maxAge: 1000000,
      secure: true
   }
})

rather than using Original Max Age, you can use maxAge and you've not passed any value to saveUninitialized and that is a necessary parameter.

Daksh M.
  • 4,589
  • 4
  • 30
  • 46