我有一个 Express 4.x 应用程序,我将 cookie 传递给浏览器
res.cookie('foo','bar1', {maxAge:99999999999});
它在遥远的未来到期。然而,5 分钟后,我收到来自同一用户的另一个请求,我想给他们一个新的 cookie。
res.cookie('foo','bar2', {maxAge:99999999999});
从我的调试来看,新的cookie似乎没有覆盖旧的cookie?是这样吗?如何用新 cookie 更新/覆盖旧 cookie?
我大约 99% 确定使用{overwrite: true}
属性会解决问题 - 从这里开始:
https://www.npmjs.com/package/cookies https://www.npmjs.com/package/cookies
it says:
cookies.set( name, [ value ], [ options ] ) 设置给定的 cookie
在响应中并返回当前上下文以允许链接。
如果省略该值,则带有过期日期的出站标头
用于删除cookie。
如果提供了选项对象,它将用于生成
出站 cookie 标头如下:
maxAge:一个数字,表示 Date.now() 中的毫秒数
expiry 过期:一个 Date 对象,指示 cookie 的过期日期
(默认在会话结束时过期)。 ...覆盖:布尔值
指示是否覆盖之前设置的相同cookie
名称(默认为 false)。如果这是真的,则在此期间设置的所有 cookie
具有相同名称的相同请求(无论路径或域)
设置此 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 可能无法工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)