Req.cookies on express not populated

I set a session cookie as part of PassportJS. I see that the cookie connect.sid is passed to the browser and back to the application on subsequent HTTP requests.

However, when I read req.cookies on one of my routes, it is empty. I set express.cookieParser (), express.session () and passport.session () in the configuration settings. Is there anything else that needs to be done to use cookies in Express / Node?

Here are the settings for my application:

app.configure(function () { app.set("db_url", config.db[app.settings.env]); app.set('port', process.env.PORT || 3000); app.use(express.logger('dev')); /* 'default', 'short', 'tiny', 'dev' */ app.use(express.static(path.join(__dirname, 'public'))); app.use(express.cookieParser()); app.use(express.bodyParser()); app.use(express.session({secret: "keyboard cat"})); app.use(passport.initialize()); app.use(passport.session()); app.use(users); app.use(orgs); app.use(errorHandler); }); 

Thanks!

+4
source share
1 answer

Try req.session instead of req.cookies . If you want to store information in a cookie, you need to set them in the same way.

 res.cookie('remember', 1, { maxAge: 60 * 1000 }); 

Then req.cookies should contain

 { remember: '1' } 

The default value of req.session is

 { cookie: { path: '/', _expires: null, originalMaxAge: null, httpOnly: true } } 
-1
source

All Articles