1

I'm trying to solve that for a long time. I'm trying to make cookie session using express cookie session and react on the front. Cookie should be in my req.session object but instead it is empty.

Here's my code:

const cookieSession = require('cookie-session');
const express = require('express');
const app = express();
const cookieParser = require('cookie-parser'); 
const bodyParser = require('body-parser');
const keys = require('./config');


app.use(express.urlencoded({ extended: true }));
app.use(bodyParser.json());


app.set('trust proxy', 1);

app.use(cookieSession({
  name: 'session',
  maxAge: 3000000,
  keys: ['key1', 'key2']
}))

app.get('/t', function (req, res) {

 // here I'm expecting to get cookie object
  res.send(req.session);

})


require('./routes/tasksRoutes')(app);
require('./routes/checkAnswers')(app)

app.listen(5000);

Could you help me on that one. Why I'm getting empty object? Thank you guys!

Murakami
  • 3,474
  • 7
  • 35
  • 89

1 Answers1

0

you need to set cookie, what you have done is configure it, now you need to set it in order use it

const cookieSession = require('cookie-session');
const express = require('express');
const app = express();
const cookieParser = require('cookie-parser'); 
const bodyParser = require('body-parser');
const keys = require('./config');


app.use(express.urlencoded({ extended: true }));
app.use(bodyParser.json());


app.set('trust proxy', 1);

app.use(cookieSession({
  name: 'session',
  maxAge: 3000000,
  keys: ['key1', 'key2']
}))

// now when you'd hit this URL your user will have a cookie attached to it.
app.get('/s', function (req, res) {
    res.cookie('cookieName', 'cookieValue')
});

app.get('/t', function (req, res) {
// you'd be able to see your cookie object here after hitting '/s' API
 // here I'm expecting to get cookie object
  res.send(req.session);

})


require('./routes/tasksRoutes')(app);
require('./routes/checkAnswers')(app)

app.listen(5000);
Muhammad Faizan
  • 1,709
  • 1
  • 15
  • 37