我有一个域名,我设置了一个cookie:myDomain.com
我的问题是我需要从我的子域访问相同的cookie,该子域实际上位于同一服务器中但分隔为域/插件域。
所以,我有myDomain.com =主域名
和myAdonDomain.com = Addon Domain
是否有共享cookie?
答案 0 :(得分:0)
是的,只要你知道如何访问它......你可以从任何地方访问它。 Facebook和各种广告服务使用此类Cookie来跟踪您和您的行为,以定位专门为您添加的广告
答案 1 :(得分:0)
不,它不可能,浏览器不允许它。
如果您想要实现此目的,请在服务器端执行此操作。
检查一个网站,会话是否在其他网站上可用,如果是,则采取相应行动。
注意:您不能与主域共享子域cookie。浏览器将它们视为不同的。这是同样的情况,因为co.in可以访问mysite.co.in的所有cookie和sesions(这是不允许的)
编辑(对于SSO上的alexC)
让我们举一个例子:
Google有一个SSO服务器,可以对其进行用户会话管理。 (让名称为sso.google.com虚拟名称)
当我们打开Gmail(第一次)
Gmail最初没有为其设置会话Cookie(即使用户已登录其他Google服务,例如plus.google.com或orkut.com)
因此,Gmail网站会将用户重定向到sso。
此处,如果用户已登录,则已设置cookie,因此此服务器会识别其。如果用户未登录,则会向用户显示登录页面,用户将通过该登录页面登录。用户登录到 sso.google.com ,而不是登录到gmail。 com。
然后,sso.google.com会将用户重定向到带有Cookie或GET变量的gmail.com,该变量包含会话令牌(随机生成的唯一会话标识符字符串)。
此会话令牌随后由Gmail存储在自己的会话中。因此,在每次进一步点击时,都会使用sso.google.com在内部检查此会话令牌,无论会话是否仍然有效,如果是,则页面是服务器,否则,用户将再次重定向到sso站点。
同样适用于任何其他Google产品。这就是跨多个产品的会话管理的完成方式。此模型主要在基于SaaS的应用程序中实现,其中有产品的多租户。
正如您所看到的那样,所有这些都不需要cookie。即使完全依赖cookie,用户从一个应用程序注销也不会对当前应用程序进行任何暗示,因此会出现完整性和安全性问题。
希望这能澄清SSO的实施情况。
答案 2 :(得分:-1)
如果是子域名,则可以共享cookie(或mydomain.com和IMissWhitney.mydomain.com)。如果它们是不同的域,则无法共享cookie。
编辑: linuxeasy是对的,文档有点偏旧,所以这里是2011年专门针对PHP的新链接。 +1 linuxeasy
http://www.innovativephp.com/sharing-cookies-across-multiple-domains-hosted-on-different-servers/