2012-09-19 71 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文件.. 這似乎並不奏效 –

相關問題