1樓:快樂的女程式設計師
設計單點登入系統時,註冊是怎麼處理的?由單點登入系統對外提供註冊介面?還是各個子系統分別對外提供註冊介面? @黃輝馮, @罒罓罒
2樓:王大爺
沒有樓上那些說的那麼複雜。
一般兩種方案:
1 共享SESSION(db,nosql等)2 通過介面對每個網域名稱下寫cookie(常見ucenter)。
至於那些在頁面上做處理,不現實的。一則涉及面廣,二則維護不方便,也不符合業務封裝(模組化)的架構思維。
3樓:王一鳴
說乙個不同的答案吧——廣播機制。同樣,以http://a.com
作為主網域名稱,不論http://
b.com
還是http://
c.com
登入時請求都提交到http://
a.com
,所有的儲存都在http://
a.com
,其他網域名稱不允許訪問。在http://
a.com
登入成功後,將登入資訊存放在http://a.com
域下的cookie中。此時發起廣播,由client端通知http://
b.com
和http://
c.com
,說使用者已經登入(僅僅是告訴他們已經登入),此時使用者訪問http://
b.com
或者http://
c.com
時有server端向http://
a.com
請求獲取使用者資訊,並將非敏感資訊儲存到自己的儲存當中。同理,登出時也是向http://
a.com
發起登出請求,http://
a.com
將使用者cookie清掉,http://
b.com
和http://
c.com
再次向http://
a.com
請求驗證使用者身份時,則驗證失敗。
4樓:
如果不考慮異地部署話,可以將使用者登入資訊統一存在服務端的共享儲存裡,memcache或者redis都是可以的;當使用者由http://
a.com
跳轉到http://
b.com
之前在url中生成乙個加密串,加密串中存放相應的登入資訊key及校驗資訊。使用者跳轉到http://
b.com
後解密url中的引數並去共享儲存中獲取使用者登入資訊。當然,如果需要相對安全一些,可以對使用者在http://
a.com
時的sid、ip之類的資訊進行驗證,同時控制url中登入引數的生命週期。驗證通過後再在http://
b.com
的伺服器上寫入本地登入資訊。退出的時候登出掉共享儲存中的登入資訊即可。
上述url中的登入引數作用類似於cas這類sso解決方案中的ticket。
php 如何實現待辦記事列表
奧古斯巨集 在我這個邏輯中,都沒用到定時任務.進入頁面的時候執行相關邏輯就可以.不過你的最好是使用定時任務,你擔心的是每天執行一遍,每天都會查詢大量的資料 或者說會查出大量的資料,感覺沒必要 這裡有兩個資料量問題,第乙個是儲存的資料量,第二個是查詢的資料量.儲存的資料量沒法優化,但是第二個查詢的資料...
PHP 登入嘗試次數設計的原理是什麼?
笑盡往事 我想到兩種方案 1.把使用者發簡訊的記錄寫入redis的key v然後判斷,再設定乙個失效時間是15分鐘 2.把使用者簡訊記錄寫入資料庫,然後運算元據庫 小小魯 1,不要使用session,可以使用cache 和資料庫 2,要實現max retry 將記錄錯誤次數和限制登陸分離會相對簡單點...
php如何實現通過ip獲取地理位置?
柳易寒 phpheader Content type text html charset UTF 8 function getIP function phpUnescape escstr 0 9a zA Z.escstr,matches prt matches ar matches 0 c fore...