首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >子域域集cookie

问子域域集cookie
EN

Stack Overflow用户
提问于 2011-03-10 10:07:56
回答 2查看 115.2K关注 0票数 58

我看了很多关于饼干的问题,但是我没有找到关于我的问题的答案。我有以下设想:

用户在example.com上创建一个登录名,并且应该获得一个cookie,但只用于子域fuu.example.com。我生成以下HTTP报头部分:

代码语言:javascript
复制
Set-Cookie: name=TestUser; Domain=fuu.example.com; Path=/; secure; HttpOnly 

但是,当我向https://fuu.example.com/提出请求时,cookie将不会添加到请求中。我想知道example.com是否可能为fuu.example.com设置一个cookie。我知道example.com可能为.example.com设置了cookie,也为example.com的所有子域设置了cookie,但这不是我想要的。

如何为子域设置cookie?我没有在子域中的请求中看到cookie。

EN

回答 2

Stack Overflow用户

发布于 2016-11-15 07:50:07

只有当域在Set-Cookie头中显式命名时,example.com和foo.example.com两个域才能共享Cookie。否则,cookie的作用域仅限于请求主机。

例如,如果您从foo.example.com发送了以下标头

代码语言:javascript
复制
Set-Cookie: name=value

然后,cookie将不会发送到example.com的请求。但是,如果您使用以下内容,则它在这两个域上都可以使用:

代码语言:javascript
复制
Set-Cookie: name=value; domain=example.com

在RFC 2109中,没有前导点的域意味着不能在子域上使用它,只有前导点(.example.com)允许跨子域使用它。

然而,现代浏览器尊重较新的规范RFC 6265,将忽略任何领先点,这意味着您可以在子域和顶级域上使用cookie。

概括地说,,如果您像上面从example.com设置的第二个例子一样设置了一个cookie,那么foo.example.com就可以访问它,反之亦然。

有关更多详细信息:https://stackoverflow.com/a/23086139/5466401

票数 21
EN

Stack Overflow用户

发布于 2021-07-26 21:54:36

实际上,有一种简单的、完全跨浏览器的支持方法可以在原始域和子域之间共享cookie,但是您应该在设置时间内共享它,为了在浏览器中轻松地使用cookie,我使用的是js-cookie,下面的设置cookie可以在原始域和所有子域之间共享:

代码语言:javascript
复制
Cookie.set('key', 'value', { domain: '.domain.com' })

// a . added before domain name

提示:添加此.将与所有子域共享cookie。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5258126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档