php單點登錄實現
⑴ php 單點登錄代碼
假設有三個不同域名,a.com, b.com, c.com,將其中之一作為真正的登陸入口,所有的域名下發起的登陸,全部重定向到這個節點,這里假設選擇a.com/login.php為統一登入節點,為了方便說明,把a.com叫做主節點,其餘叫做從節點。
假設現在從任意站點發出登陸請求,最終都被帶到 a.com/login.php?from=b.com&sfkey=xxxxxx,用戶輸入登陸信息,假設登陸成功,返回一個登陸成功中間頁面,在這個頁面里,包含下面html代碼
<iframe width="0" height="0" src="b.com/sso.php?sessid=xxxxxxxxxxxx&sfkey=xxxxxxxxxxx"></iframe>
<iframe width="0" height="0" src="c.com/sso.php?sessid=xxxxxxxxxxxx&sfkey=xxxxxxxxxxx"></iframe>
sessid是登陸成功以後的session ID,sfkey是一個安全碼,這兩個串在login.php里綁定到當前登陸的用戶記錄上。
這個時候a.com實際已經登陸完畢,獲得了PHPSESSID的cookie。兩個iframe的作用是把獲得的session id立刻同步到從節點上,從節點的sso.php獲得sessid和sfkey後,首先校驗這個配對是否存在,如果存在,立刻把sessid值設為當前session id
session_id($_GET['sessid']); // 使用a.com產生的session id
session_start();
sso.php請求完畢後,b.com和c.com這兩個站點就獲得了和a.com一樣的PHPSESSID cookie;
這個頁面會把用戶重定向回所來自的頁面(到達login.php的時候記住了),重定向完成後,用戶已經在所有網站完成了同步登陸。
a.com發送iframe請求的時候使用加密的sessid=xxxxxx里的sessid,從節點的sso.php獲取密文後解密才獲得真實的session id
可以用單獨域名來作為登陸主節點,比如login.x.com,而不用a b c中的任意一個,login.x.com做且僅作登陸服務。
⑵ PHP怎麼實現單點登錄
1、直接網上找一個單點登錄系統,把這2個系統整合到一起,
2、自己寫一個單點登錄系統,藉助中間表,比如你以java系統為主,在java系統裡面嵌入了php系統,當點擊php系統的欄目時就先去中間表check一下,然後直接跳到你的php系統上面就好,
3、如果沒有許可權啥的,你就直接放一個連接傳用戶名和密碼直接登錄訪問也行。
一般兩種方案:
1
共享SESSION(db,nosql等)
2
通過介面對每個域名下寫cookie(常見ucenter)。
至於那些在頁面上做處理,不現實的。一則涉及面廣,二則維護不方便,也不符合業務封裝(模塊化)的架構思維。
答題不易,互相理解,您的採納是我前進的動力,感謝您。
⑷ 單點登錄的實現 php
check session or cookie
⑸ php 單點登錄
可以借鑒各大開源程序中的單點登錄應用,例如disucz的Ucenter或者phpcms的phpsso等
⑹ php 怎麼實現單點登錄
您好,即插即用方式實現單點登錄:
對於 B/S結構應用系統,用戶只需通過瀏覽器界面登錄一次,即可通過UTrust SSO單點登錄系統訪問後台的多個用戶許可權內的Web應用系統,無需逐一輸入用戶名、密碼登錄。對於 C/S結構應用系統,通過IE控制項來實現對C/S系統客戶端的單點登錄,用戶輸入一次用戶名、密碼,即可訪問所有被授權的C/S系統資源。無論對於B/S和C/S結構的應用系統,實現單點登錄的功能時,後台應用系統無需任何修改。•後置代理方式實現單點登錄 對於有改造條件的B/S結構應用系統,UTrustSSO也提供了後置代理的方式實現單點登錄。SSO 系統提供各種API,Agent代理,對原有應用系統進行改造,改變原有應用系統的認證方式,同時採用認證伺服器提供的技術進行一次性身份認證,實現單點登錄。
⑺ php 怎麼實現單點登錄
單點登錄(Single Sign On),簡稱為 SSO,是目前比較流行的企業業務整合的解決方案之一。SSO的定義是在多個應用系統中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統。(網路)
我本人認為單點登錄主要解決一下問題:
1. 一個用戶賬號,多站點通用;
2. 一個應用登錄,其他應用同時登錄;
3. 一個賬號退出,其他應用賬號同時退出;(非必須,此項不在單點登錄的討論范圍之內,不過WEB單點登錄,用到的還是挺多的);
4. 歡迎補充
PHP實現單點登錄方法有多種:
1. 通過關系服務 如webservice 之類的;
2. 資料庫共享session實現;
4. P3P跨站點 如ucenter phpcms 等;
5. 通過文件操作 SESSIONID
6. 歡迎補充
⑻ PHP單點登錄怎麼實現
一般兩種方案:
1 共享SESSION(db,nosql等)
2 通過介面對每個域名下寫cookie(常見ucenter)。
至於那些在頁面上做處理,不現實的。一則涉及面廣,二則維護不方便,也不符合業務封裝(模塊化)的架構思維。
⑼ php實現單點登錄
可以使用cookie
但是作為一個系統來說 你這樣做一點不安全
⑽ php單點登陸(sso)實例
建一個在線用戶表 欄位 包括session_id,user_id,
如果你想 用戶登錄後沒有退出 用戶繼續使用相同賬戶 密碼登錄的話 踢出原來已經登錄的用戶
用戶登錄成功時,把sessuib_id,user_id插入到在線用戶表中
下次用戶登錄時 根據user_id查詢這個表 若有記錄取得相應的session_id 並刪除相應的session文件即可。