Redic doc (nil) after session regeneration in Express

I update my sessionID after a successful login in my express application. I use redis-connect and ioredis to support the redis cluster.

Here is my server file code

// Redis Client Intialization
switch(bll.env) {
    case 'production' :
        ioRedis = new IoRedis.Cluster(bll.config.redis.cluster, bll.config.redis.options);
        break;
    case 'staging' :
        ioRedis = new IoRedis.Cluster(bll.config.redis);
        break;
    default :
        ioRedis = new IoRedis(bll.config.redis);
        break;
}

app.use(session({
    store: new RedisStore({client: ioRedis, disableTTl:true, prefix:'prefix:'}),
    genid:function(req){
        return sessionManager.getSessionId(req);
    },
    name:"name",
    rolling: true,
    saveUninitialized: false,
    unset: 'keep',
    resave: true,
    secret: 'somesecret'
}));

Here is my code where I regenerate my session

console.log('previous session id', req.sessionID);
        if(req.session.newSessionToken) {
            let tempSession = req.session;
            req.session.regenerate(function(err){
                if(err){
                    throw(err);
                }
                req.sessionID = tempSession.newSessionToken;
                req.session = tempSession;
                req.session.newSessionToken = null;
                delete req.session.newSessionToken;
                console.log('new session id', req.sessionID);
                res.header('x-jabong-sessionid', req.sessionID);
                req.session.save(function(err){
                   if(err){
                       throw err;
                   }
                    return res.json(data);
                });

            })
        } else {
            res.header('x-jabong-sessionid', req.sessionID);
            return res.json(data);
        }

Now when I try to get doc using

    127.0.0.1:6379> get jbsess:34edc7ef6f7be59426013e18e773bc5518d9aa0f3d3b7655ecda1109f25164db
(nil)
127.0.0.1:6379> 

I get a null document. How can I solve this problem, I could skip something here.

+4
source share

Source: https://habr.com/ru/post/1623392/


All Articles