我有一个Express 4.x应用程序,我通过
将cookie传递给浏览器 res.cookie('foo','bar2', {maxAge:99999999999});
它在遥远的未来到期。但是,5分钟后,我收到同一个用户的另一个请求,我想给他们一个新的cookie。
Expr
从我的调试开始,看起来新的cookie没有覆盖旧的cookie?是这样的吗? 如何使用新Cookie更新/覆盖旧Cookie?
答案 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可能无效。