Ale*_*lls 4 browser cookies node.js express web
我有一个 Express 4.x 应用程序,我将一个 cookie 传递给浏览器
res.cookie('foo','bar1', {maxAge:99999999999});
Run Code Online (Sandbox Code Playgroud)
它在遥远的将来到期。但是,5 分钟后,我收到来自同一用户的另一个请求,我想给他们一个新的 cookie。
res.cookie('foo','bar2', {maxAge:99999999999});
Run Code Online (Sandbox Code Playgroud)
从我的调试来看,看起来新 cookie 不会覆盖旧 cookie?是这样吗?如何用新的 cookie 更新/覆盖旧的 cookie?
我大约 99% 肯定使用该{overwrite: true}属性可以解决问题 - 从这里开始:
https://www.npmjs.com/package/cookies
它说:
cookies.set( name, [ value ], [ options ] ) 这会在响应中设置给定的 cookie 并返回当前上下文以允许链接。
如果省略该值,则使用带有过期日期的出站标头来删除 cookie。
如果提供了 options 对象,它将用于生成出站 cookie 标头,如下所示:
maxAge:一个数字,表示从 Date.now() 到到期的毫秒数 expires:一个 Date 对象,指示 cookie 的到期日期(默认在会话结束时到期)。... overwrite:一个布尔值,指示是否覆盖先前设置的同名 cookie(默认情况下为 false)。如果这是真的,则在设置此 cookie 时,在同一请求期间设置的所有具有相同名称(无论路径或域)的 cookie 都会从 Set-Cookie 标头中过滤掉。
用 Node.js Express 的话说就是:
res.cookie('cdt_app_token', encoded, {maxAge: 90000000, httpOnly: true, secure: false, overwrite: true});
Run Code Online (Sandbox Code Playgroud)
请注意,如果您使用的是非 SSL 或非 TLS 连接,则如果 secure 为 true,cookie 可能不起作用。
| 归档时间: |
|
| 查看次数: |
8298 次 |
| 最近记录: |