php - 将 cookie 共享到本地主机上的子域

标签 php cookies

我创建了一堆用于身份验证的 cookie,网站的一部分允许用户导航到该网站的英国部分。这是通过在域中使用 uk 前缀来实现的。 (例如 uk.domain.com)。

我基本上有一个小脚本,用于检查子域是否称为 UK,然后我提供 UK 内容。

我怎样才能让 domain.com 上的所有 cookie 都转移到 uk.domain.com?

我试过了 ...

... 将 cookie 设置为根域

 setcookie("auth", "blahblah", time() + 123, "/", "localhost")

... 在域的开头添加一个点
 setcookie("auth", "blahblah", time() + 123, "/", ".localhost")

...在两个域上创建 cookie
 setcookie("auth", "blahblah", time() + 123, "/", "localhost")
 setcookie("auth", "blahblah", time() + 123, "/", "uk.localhost")

... 创建没有任何域或路径的 cookie。
 setcookie("auth", "blahblah", time() + 123, "/")
 setcookie("auth", "blahblah", time() + 123)

我似乎无法让它发挥作用。

最佳答案

发现您无法将 localhost 设置为 chrome 上的 cookie。它需要是注册管理机构控制的域,而不是 IP 或 Intranet 主机名。

我通过基本上将 localhost 转换为域找到了一种解决方法。

我将此添加到主机文件 (c:\windows\system32\drivers\etc\hosts) -

127.0.0.1    localhost.com    
127.0.0.1    uk.localhost.com    

然后使用 localhost 域创建 cookie
setcookie("auth", "blahblah", time() + 123, "/", "localhost.com")

这允许我从 http://uk.localhost.com 访问身份验证 cookie (或几乎任何子域)。

关于php - 将 cookie 共享到本地主机上的子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38669040/

相关文章:

php - 为什么在 Laravel 5.2 的 blade.php 文件中没有显示这些数据

php - 使用用户插入的变量清理 exec 命令的最佳方法

php - 如何通过 PHP 从 MySQL 数据库中导出 20,000 个联系人以导入到桌面地址簿中?

node.js - NodeJS/express 4 : Can't set headers after they are sent while writing cookie

google-chrome - 使用 Chrome 的 cookie 的 CXF 问题

javascript - 如果成功或错误,则在不同的 div 中获取 ajax 结果

php - 在我的本地 XAMPP 服务器上禁用输出缓冲

c# - ASP.NET 无 Cookie session URL 问题仅在移动 safari 中

c# - ASP.Net OWIN 身份验证 - 如何在浏览器选项卡关闭时删除 UseCookieAuthentication?

node.js - 使用自定义 header 测试 NodeJS socket.io