我正在嘗試像Google一樣創建跨域簽名。因此,您的youtube,gmail,google +等具有相同的帳戶。但是,有幾個問題令我困惑:SSO /跨域名登錄,本地訪問用戶數據
假設我有5個網站,我不想傳輸任何有關用戶的數據除了他/她的電子郵件,用戶名和密碼。如果我只有1個用戶數據庫而不是5個,每次我調用用戶數據庫來訪問用戶的個人資料圖片,用戶名等時,是否需要調用遠程數據庫?
我一直在想有一個遠程用戶和會話數據庫,所以每個子站點訪問,而不是本地用戶和會話數據庫。但是我的應用程序廣泛使用該表,並且擔心每次從遠程數據庫獲取數據的性能。
如何以一種乾淨的方式實現此目標,以便每個子站點都可以在本地輕鬆訪問用戶信息,並且他們也像Google和其產品一樣共享相同的登錄/註銷過程? (我使用所謂的Yii與MySQL一個PHP框架)
我已經想出了以下解決方案,我張貼作爲一個答案爲好,請指教,如果有任何問題,這件事嗎?謝謝你們的幫助。
- 有一個用戶表中的每個子站點,說child1.com & child2.com
- 已在父網站超級用戶表,說parent.com
- 當用戶登錄到child1.com ,檢查身份,重定向到parent.com/child1進行註冊或登錄。完成後,使用加密的URL重定向到child1以自動登錄用戶。如果用戶的信息已經從父數據庫發生變化,我們可以在這裏將它同步到子數據庫(如果它是一個註冊過程而不是登錄過程,請將user_id,用戶名和電子郵件寫入數據庫,以便您可以訪問本地從child1.com)
- 當用戶登錄到child2.com時,它將重定向到parent.com/child2,但是,用戶已經通過了對parent1.com的身份驗證,因此它將用戶重定向到child2而沒有加密的URL,所以child2.com直接登錄用戶。
- 對於退出處理,註銷child1.com &捲曲的加密註銷鏈接註銷從其他網站該用戶說child2.com或parent.com
查看** OAuth ** – 2014-02-26 19:23:35
什麼是投票表決? – jackhao
@jackhao:很可能是因爲你的問題太寬泛。它只是無法回答。通過Yii,這將是一些登錄遠程服務和會話處理的混合體。瞭解授權和認證以及兩者之間的差異。 – hakre