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

发布于 2022-09-06 15:02:35 字数 785 浏览 27 评论 0

我使用了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自然在数据库查不到信息,这该怎么解决,有啥思路吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文