Node.js 覆盖/更新浏览器cookie

Node.js 覆盖/更新浏览器cookie,node.js,express,cookies,web,browser,Node.js,Express,Cookies,Web,Browser,我有一个Express 4.x应用程序,我用 res.cookie('foo','bar1', {maxAge:99999999999}); 它将在遥远的将来到期。然而,5分钟后,我收到了来自同一用户的另一个请求,我想给他们一个新的cookie res.cookie('foo','bar2', {maxAge:99999999999}); 从我的调试来看,新cookie似乎没有覆盖旧cookie?是这样吗我如何用新的cookie更新/覆盖旧的cookie?我大约99%确定使用{overwr

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

res.cookie('foo','bar1', {maxAge:99999999999});
它将在遥远的将来到期。然而,5分钟后,我收到了来自同一用户的另一个请求,我想给他们一个新的cookie

 res.cookie('foo','bar2', {maxAge:99999999999});

从我的调试来看,新cookie似乎没有覆盖旧cookie?是这样吗我如何用新的cookie更新/覆盖旧的cookie?

我大约99%确定使用
{overwrite:true}
属性将实现此目的-从这里开始:

它说:

set(名称、[值]、[选项])设置给定的cookie 并返回当前上下文以允许链接

如果省略该值,则将显示一个具有过期日期的出站标头 用于删除cookie

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

maxAge:表示从Date.now()开始的毫秒数 Expire expires:指示cookie的到期日期的日期对象 (默认情况下在会话结束时过期)。。。覆盖:一个布尔值 指示是否覆盖以前设置的相同cookie 名称(默认为false)。如果这是真的,则在 使用相同名称(无论路径或域)的相同请求将被删除 设置此Cookie时已从Set Cookie标头中筛选出

用Node.js Express的说法就是:

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

请注意,如果您使用的是非SSL或非TLS连接,那么如果secure为true,Cookie可能无法工作。

从这里看:我应该使用{overwrite:true}我想OP讨论了,您提到了。查看Express文档时,没有“覆盖”属性,它似乎是您所引用的库所独有的。