NodeJS redis connect session ID is regenerated when it should stay persisted NodeJS redis connect session ID is regenerated when it should stay persisted express express

NodeJS redis connect session ID is regenerated when it should stay persisted


I had similar issue. My session was regenerated upon every request. I solved it by setting proper date on virtual machine where development takes place.


Try this..

let redisStore,redisClient;const redis = require('redis');redisStore = require('connect-redis')(session); redisClient = redis.createClient();redisClient.on('error', (err) => {    console.log('Error: ', err);});app.use(session({    store   : new redisStore({ host: 'localhost', port: 'port', client: redisClient }),    name    : 'session_name',     resave  : false,    saveUninitialized: false,    rolling : true,}));

Note: redis can't support in window/localhost.


I had the same issue when sessions had been regenerated on every request. The reason was that the 'static' middleware was placed below 'session' one. So, be sure to place middlewares in proper order, i.e:

...app.use(express.static(path.join(__dirname, 'public')));app.use(express.session({ store: new RedisStore({ prefix: 'sid_' }) }));app.use(app.router)app.get ...

'express.session' middleware should be under 'static'.