2011-07-07 39 views
0

我有一個關於三個網站的網絡。在PHP中實現三個網站的單一登錄?

- site1.domain.com 
- site2.domain.com 
- site3.domain.com 

目前,每個子域在三個獨立的數據庫中有〜100個賬戶。他們分別爲每個域登錄。我想創建site0.domain.com,讓他們對一個數據庫進行身份驗證,然後在用戶訪問它們時自動將用戶登錄到每個站點。

我不太確定如何做到這一點。我聽說過像Open ID和Federations以及單點登錄這樣的術語,但我從來沒有想過要像之前那樣整合網站。

首先有什麼技巧,這是如何在技術上實現的(我使用的是PHP/MySQL),其次,什麼是一個很好的計劃,可以在不中斷服務的情況下遷移現有用戶帳戶以使用單點登錄?

我猜測用戶可以通過site0上的表單登錄,它將授權用戶對數據庫併爲他們的會話創建一個數據庫行,並附帶一個標記。令牌設置在會話變量cookie中。用戶訪問site1,site2或site3,並且如果在GET請求中設置了令牌變量,它將連接到同一數據庫site0使用,搜索令牌並返回正確的用戶行。這幾乎是如何工作的?任何更多的技術建議將是偉大的...

就遷移,我想我可以讓用戶創建他們的site0登錄或'連接'他們的用戶帳戶到site0登錄如果他們還沒有每次他們登錄到其中一個網站。 30天后,所有網站都停止接受正常登錄,並且用戶被迫創建site0登錄。當他們創建site0登錄,它要求他們的站點1,站點2,或site3用戶名/密碼,因此它可以得到正確的用戶信息。

回答

0

看看像SimpleSAMLphp這是做這種事情一個偉大的圖書館。

+1

我發現叫[LightOpenID]一個輕量級的PHP腳本(http://gitorious.org/lightopenid),這是非常容易理解和使用實現的OpenID,我猜是我現在要做到這一點。用起來麻煩,但... – Chris