我有一个单点登录实现,可以在人们登录时向网站添加cookie。我在查看一个页面时在 chrome 检查器中看到 cookie,但在同一域的另一个页面中没有看到。
- cookie 路径设置为"/",因此应该在所有文件上可用
- 消失的 Cookie 的目标域是另一个域
当我转到网站上的一个页面时,我看到许多cookie(包括各种目标域(。
当我转到同一域上的其他页面时,我看到的cookie较少(似乎都以本地域为目标(
使用Apache,SSL,Ubuntu,它是一个子域,它是一个会话cookie,使用完全相同的https和www in url,所有标准的东西。
为什么同一域上的不同页面可以显示不同的 Cookie(在 chrome 检查器中(?
显然,这里的线索是cookie目标域,但为什么这是一个问题?
只有在当前页面的上下文中发生对这些域的任何请求时,才会显示第三方 Cookie。
假设您的域A
,并且您在浏览器中为域B
设置了cookie。
您的页面1
嵌入域B
中的某些内容- 可能是图像,脚本文件等 - 任何导致对域B
发出实际HTTP请求的内容。然后,您将看到开发工具中列出的域B
cookie。
但是,您的页面2
不会嵌入域B
中的任何此类资源。现在没有来自B
的 cookie 实际上"参与"在此页面上发生的事情中2
- 因此当您在第2
页上时,开发工具现在也没有必要或理由显示它们。