node使用多进程后,数据库保存session如何保持sessionID并查找sessions?

我使用了node-express,由于开启了多进程后,cookies不能共享,并且session.cookis.secure官方也推荐设置为true,就导致每次请求sessionID都会改变,而每次我只在登登录时存一些信息至session,请问我如何根据sid从数据库中取出对应的session信息呢?

这是我的session设置:

app.use(session(Object.assign({}, {
        name: 'sessionUserId',
         saveUninitialized: false,
         resave: false,
         rolling: true,
        cookie: {
            secure: true
        },
        secret: SESSIONSECRET,
        store: new MongoStore({ mongooseConnection: db, stringify: false}),
    
    }
)));

这是我取值的例子:

req.sessionStore.get(req.sessionID, (err, session)=>{
     console.log(req.sessionID, err, session)
})

每次登录验证通过,就会往session存入信息,然后跳转路由至首页,但一旦跳转或其它请求,sessionID就会变化,
这个时候根据sid自然在数据库查不到信息,这该怎么解决,有啥思路吗?

阅读 2.6k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题