Set-Cookie 是否包含多个 cookie?

发布于 2024-11-04 16:19:50 字数 490 浏览 1 评论 0原文

我正在 Node.JS 中进行一些类似于浏览器的 cookie 处理,并想知道从 NodeJS 和 HTTP 客户端 - 是否支持 cookies?

代码会删除第一个分号之后的所有内容。

var cookie = get(response.headers, "Set-Cookie")
if (cookie) {
  cookie = (cookie + "").split(";").shift()
  set(opts.headers, "Cookie", cookie)
}

我将以有限的方式对此进行扩展,并研究如何避免未来步骤的重写。

我见过使用多个 Set-Cookie 标头设置多个 cookie。

I am working on some browser-like cookie handling in Node.JS and want to know how far to expand on this code from NodeJS and HTTP Client - Are cookies supported?

The code drops everything after the first semicolon.

var cookie = get(response.headers, "Set-Cookie")
if (cookie) {
  cookie = (cookie + "").split(";").shift()
  set(opts.headers, "Cookie", cookie)
}

I will expand on that in limited ways and am looking at how to avoid a re-write for future steps.

I have seen multiple cookies being set using multiple Set-Cookie headers.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

中二柚 2024-11-11 16:19:50

删除第一个分号之后的所有内容是一个坏主意,因为它携带 cookie 元数据。这是我从 StackOverflow 收到的 Set-Cookie 标头(稍作编辑):

usr=t=ABCDEFGHIJ&s=23412341234; domain=.stackoverflow.com; expires=Fri, 04-Nov-2011 07:39:57 GMT; path=/; HttpOnly

设置的多个 cookie 如下所示:

hest2=spam, pony2=spam, sovs2=spam; expires=Wed, 04-May-2011 07:51:27 GMT, NO_CACHE=Y; expires=Wed, 04-May-2011 07:56:27 GMT; path=/; domain=.something.d6.revealit.dk

因此 cookie 字符串解析起来相当复杂,所以我认为没有一种简单的方法可以完成此操作......

Dropping everything after the first semicolon is a bad idea, since that carries the cookie metadata. Here's the Set-Cookie header I received from StackOverflow (slightly redacted):

usr=t=ABCDEFGHIJ&s=23412341234; domain=.stackoverflow.com; expires=Fri, 04-Nov-2011 07:39:57 GMT; path=/; HttpOnly

Multiple cookies being set looks like this:

hest2=spam, pony2=spam, sovs2=spam; expires=Wed, 04-May-2011 07:51:27 GMT, NO_CACHE=Y; expires=Wed, 04-May-2011 07:56:27 GMT; path=/; domain=.something.d6.revealit.dk

So the cookie string is rather complex to parse, so I don’t think there's a simple way to accomplish this…

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文