【问题标题】:Why setting the cookie.secure to True in express session allows session id and data to persist?为什么在快速会话中将 cookie.secure 设置为 True 允许会话 ID 和数据保持不变?
【发布时间】:2022-02-19 20:22:57
【问题描述】:

我目前正在学习 MERN 堆栈并从事一个小项目,该项目需要我拥有一些可以在路由之间持续存在的会话数据。

它按预期工作,但每当我走错路线或返回登录页面并记录会话 ID console.log(req.session.id) 时,每次都不一样。

所以我做了一些挖掘,从之前的一些 stackoverflow 帖子中,session not persisting when using secure cookie in NodeJS with express-session,在 http 上进行测试时设置 cookie: { secure: false } 似乎解决了我的问题。会话 ID 和扩展会话数据仍然存在。

我想知道为什么在快速会话选项中设置cookie: { secure: false } 允许会话 ID 和数据保持不变,而没有它则不会。

这是我的会话选项

server.use(session({
        secret: 'sxexsxsxixoxn',
        resave: false,
        saveUninitialized: true,
        cookie: { secure: false }
    }))

【问题讨论】:

    标签: node.js express session cookies


    【解决方案1】:

    如果您设置cookie: {secure: true},cookie 将仅通过 https 连接设置,而不是通过 http 连接设置。另见here

    所以如果你只有一个http服务器,你必须设置cookie: {secure: false},否则不会设置cookies,会话处理也不起作用。

    【讨论】:

      猜你喜欢
      • 2022-11-27
      • 2012-09-27
      • 2019-12-29
      • 1970-01-01
      • 2019-01-24
      • 2019-10-20
      • 1970-01-01
      • 2019-03-14
      • 2020-04-07
      相关资源
      最近更新 更多