2012-09-19 43 views
1

我知道我在问如何获得跨域cookie,这在传统上是不可能的,但是我们有一种情况,我们有两台服务器site1.domain.comsite2.domain.com,我们有一个基于cookie的SSO工作正常,直到该公司决定将site2.domain.com到一个完全不同的领域。现在的问题是当有人到site1.domain.com记录,我们设置cookie的.domain.com.php获取由另一台服务器设置的cookie

我要检查是否有从domain2.com一个cookie,这是第二个服务器的新域。

我试着用curl来调用一个名为getCookie.php的页面,它只是获取cookie并将响应发回,但curl启动一个全新的会话并且不假装是浏览site2.domain2的用户。 com

有没有什么办法,我可以从site2读取cookie值?任何帮助表示赞赏。

+0

也许嵌入iframe可以h ELP? – Horen

+0

如果你有两个服务器上的控制,你也许可以把东西一起使用API​​调用了。 – andrewsi

回答

0

JSONP?

从site1.domain.com加载“JS文件”,并以json的形式返回请求的cookie信息。

编辑

site1.domain.com/getCookie.php

<?php 
header('Content-Type: application/x-javascript'); 
echo 'callback('.json_encode($_COOKIE).');'; 
?> 

,并在site2.domain2.com HTML

<html> 
<head> 
    <script >function callback(data) { ... }</script> 
    <script src="site1.domain.com/getCookie.php" type="text/javascript"></script> 
... 

您可能会发现在Cookie Access over JSONP更多信息

+0

这对我来说是新的..你能给我一个粗略的例子吗?我会很感激。 –

+0

回调的javascript函数需要处理的信息,并保存在这个领域的SSO cookie的为好。 – Xandl

+0

这是我在我的getCookie.php server1上试过的东西 <?php header('Content-Type:application/x-javascript'); echo“callback(”。json_ecode($ _ COOKIE ['company'])。“);”; ? > 这里是我的服务器2作为简单的HTML文件.. 这似乎并不奏效 –

相关问题