【问题标题】:My cookie must expired at the end of the session with cookie-session and node js and express我的 cookie 必须在 cookie-session 和 node js 和 express 的会话结束时过期
【发布时间】:2021-07-08 19:53:55
【问题描述】:

我的会话 cookie 有问题,使用 express 和 node js 的 cookie-session 当我关闭浏览器时,会话的 cookie 不会被删除

app.use(cookieSession({
    name: 'session',
    keys: ['key1', 'key2'],
    secret: 'secret',
    cookie: {
      secure: true,
      domain:"lucie-oreo.fr",
      httpOnly: false,
      path: '/'
      expires:false //I tried with null ,0 
    }
  }));

我不明白为什么 cookie 没有被删除 感谢帮助我:)

【问题讨论】:

    标签: javascript node.js express cookies session-cookies


    【解决方案1】:

    即使您重新启动浏览器,它们也可以存储 cookie。您必须发送额外的标头信息,这可以是过去的日期,以确保它在会话结束时过期或不允许缓存 cookie,这可以通过 Cache-Control: privateCache-Control: no-cache="set-cookie" 指令来完成。

    MDN HTTP Cookies:

    • 当前会话结束时会删除会话 cookie。浏览器定义了“当前会话”何时结束,有些浏览器在重启时会使用会话恢复,这可能会导致会话 cookie 无限期地持续很长时间。

    RFC 2109 第 4.2.3 节说:

    如果 cookie 旨在供单个用户使用,则不应缓存 Set-cookie 标头。可能会缓存旨在由多个用户共享的 Set-cookie 标头。

    源服务器应根据情况发送以下附加 HTTP/1.1 响应标头:

    • 禁止缓存 Set-Cookie 标头:Cache-control: no-cache="set-cookie"。

    【讨论】:

    • 谢谢你的回答和帮助我试试这个,我回来了:)
    猜你喜欢
    • 2012-05-23
    • 2013-07-18
    • 1970-01-01
    • 2011-11-30
    • 2011-05-07
    • 1970-01-01
    • 2013-12-26
    • 2011-04-13
    • 2016-06-02
    相关资源
    最近更新 更多