我的 cookie 必须在会话结束时过期,使用 cookie-session 和节点 js 并表达

时间:2021-04-13 18:16:23

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

我的会话 cookie 有问题,使用 cookie-session for express 和 node js 当我关闭浏览器时,会话的 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 没有被删除 感谢帮助我:)

1 个答案:

答案 0 :(得分:0)

即使您重新启动浏览器,它们也可以存储 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"。