2011-01-27 50 views
1

例如我有2個應用程序,一個在abc.com,另一個在xyz.com如何登錄到不同域中的多個應用程序一次?

現在我想要做的是,如果一個用戶登錄abc.com,那麼他也將自動登錄xyz.com。意味着他在abc.com登錄後,只是在瀏覽器中打開一個新標籤xyz.com,他會發現,他已經登錄。

這是一樣msn.comhotmail.com,如果你在msn.com記錄下來,並打開hotmail.com,你可以看到你已經登錄。

我使用CI,併爲登錄信息我用CI的會話功能(這是餅乾其實),但似乎餅乾不能共享跨不同的域。

我試過用CURL,但是CURL不能讓xyz.com真的是做的餅乾。

而且我還四處搜尋谷歌,不少人建議通過會話ID,但問題是,有abc.comxyz.com之間沒有聯繫,我怎麼能傳遞會話?如果我將會話ID存儲在數據庫中,那麼如何確定哪個用戶應該使用此會話ID? IP明顯不安全:D

請幫幫我!

+0

那麼你要找的基本上是單點登錄(或簡稱SSO)解決方案?閱讀OpenID(正如在此使用的那樣),它經過了測試(非常方便)。 – wimvds 2011-01-27 09:00:09

回答

2

您可以打開xyz.com的iframe將連接到abc.com,然後使用AJAX/JS通過調用iframe的一個js函數轉發某種來自iframe的令牌xyz.com的。

所以看起來像:

XYZ.com:

function authAbcUser(token) { 
    //During this function you will set a cookie for this user on XYZ.com 
} 
<iframe height="0" width="0" src="http://www.abc.com/auth.php?token"></iframe> 

ABC.com/auth.php:

parent.authAbcUser(token); 
+0

thx!要試試這個! – JuLy 2011-01-27 08:05:09