跨域使用cookie?

时间:2012-10-18 11:09:34

标签: php

  

可能重复:
  cross domain cookies

我需要在多个域中提供Cookie。我知道你不能直接做,但我可以这样做:

  • 用户访问域名1
  • domain1向domain2发送卷曲帖子
  • domain2检查是否已设置名为“someCookie”的cookie。如果是,那么它返回一些数据告诉domain1它已经被设置,如果没有它返回一些数据说它没有设置。
  • 现在domain1知道domain2的cookie是否已设置

所以基本上domain2总是处理cookie,只是报告回其他域,无论是否设置。我还需要通过调用设置cookie的domain2上的脚本来从domain1设置它。

我不知道这是否可行,但请告诉我

3 个答案:

答案 0 :(得分:4)

someCookie是客户端上没有服务器上的数据存储...所以只要客户端没有在浏览器窗口中加载,或者从domain2加载iframe,就不会有cookie。请记住,有些浏览器会阻止从iframe创建Cookie。

答案 1 :(得分:3)

您建议的解决方案的问题是Cookie会保存在客户端。因此,domain1不能简单地联系domain2来询问cookie是否存在。

你可以做的是拥有一个iframe到domain2。 Domain2读取cookie并向domain1发送一些通知,告诉domain1客户端X刚刚访问了domain2并且已设置或未设置cookie。但是,这是一个非常hacky的解决方案,不适用于所有浏览器。

将数据从一个域传递到另一个域是一项非常复杂的任务。浏览器对此类内容的支持非常有限,因为这些内容通常用于恶意软件目的(跨站点脚本)。因此,在这种情况下,浏览器会故意限制可能的解决方案。

答案 2 :(得分:0)

Cookie不能与不同的域共享,但它不是子域名,更改它将起作用。

尝试一些像

这样的事情
http://domain1.com/authenticate?token=tekrjadfjhad&action=auth

根据您的逻辑验证令牌和操作或其他任何内容。