覆盖/更新浏览器cookie

时间:2017-06-07 00:44:33

标签: node.js express cookies web browser

我有一个Express 4.x应用程序,我通过

将cookie传递给浏览器
 res.cookie('foo','bar2', {maxAge:99999999999});

它在遥远的未来到期。但是,5分钟后,我收到同一个用户的另一个请求,我想给他们一个新的cookie。

Expr

从我的调试开始,看起来新的cookie没有覆盖旧的cookie?是这样的吗? 如何使用新Cookie更新/覆盖旧Cookie?

1 个答案:

答案 0 :(得分:3)

我大约99%确定使用{overwrite: true}属性可以解决问题 - 从这里开始:

https://www.npmjs.com/package/cookies

它说:

  

cookies.set(name,[value],[options])设置给定的cookie   在响应中并返回当前上下文以允许链接。

     

如果省略该值,则具有过期日期的出站标头为   用于删除cookie。

     

如果提供了options对象,它将用于生成   出站cookie标头如下:

     

maxAge:一个数字,表示Date.now()的毫秒数   expiry expires:一个Date对象,表示cookie的到期日期   (默认情况下在会话结束时到期)。 ...覆盖:布尔值   指示是否覆盖先前设置的cookie   name(默认为false)。如果是这样,那么在此期间设置的所有cookie   具有相同名称的相同请求(无论路径或域)是什么   设置此cookie时过滤掉Set-Cookie标头。

那就是Node.js Express的说法:

res.cookie('cdt_app_token', encoded, {maxAge: 90000000, httpOnly: true, secure: false, overwrite: true});

请注意,如果您使用的是非SSL或非TLS连接,则在安全性为真时,Cookie可能无效。