導航:首頁 > 編程語言 > php如何實現單點登錄

php如何實現單點登錄

發布時間:2022-05-07 03:58:09

php實現單點登錄

可以使用cookie
但是作為一個系統來說 你這樣做一點不安全

② 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單點登錄嗎

單點登錄最簡單的實現方式就是使用cookie作為媒介,存放用戶憑證。用戶登錄父應用之後,應用返回一個加密的cookie,當用戶訪問子應用的時候,攜帶上這個cookie,授權應用解密cookie並進行校驗,校驗通過則登錄當前用戶。

④ PHP單點登錄怎麼實現

一般兩種方案:
1 共享SESSION(db,nosql等)
2 通過介面對每個域名下寫cookie(常見ucenter)。
至於那些在頁面上做處理,不現實的。一則涉及面廣,二則維護不方便,也不符合業務封裝(模塊化)的架構思維。

⑤ php 怎麼實現單點登錄

您好,即插即用方式實現單點登錄:
對於 B/S結構應用系統,用戶只需通過瀏覽器界面登錄一次,即可通過UTrust SSO單點登錄系統訪問後台的多個用戶許可權內的Web應用系統,無需逐一輸入用戶名、密碼登錄。對於 C/S結構應用系統,通過IE控制項來實現對C/S系統客戶端的單點登錄,用戶輸入一次用戶名、密碼,即可訪問所有被授權的C/S系統資源。無論對於B/S和C/S結構的應用系統,實現單點登錄的功能時,後台應用系統無需任何修改。•後置代理方式實現單點登錄 對於有改造條件的B/S結構應用系統,UTrustSSO也提供了後置代理的方式實現單點登錄。SSO 系統提供各種API,Agent代理,對原有應用系統進行改造,改變原有應用系統的認證方式,同時採用認證伺服器提供的技術進行一次性身份認證,實現單點登錄。

⑥ php 怎麼實現單點登錄

php 單點登錄並不復雜。單獨登錄 (SSO)其實就是讓用戶通過一次登錄訪問授權的網路資源。如果是要實現的話,就需要找專業的解決方案了,比如玉符SSO單點登錄解決方案。
玉符單點登錄的優勢主要有:
玉符SSO支持市面上所有標准協議,雲服務或者本地部署都搞得定,微軟的SAML、谷歌的OIDC,包括CAS、Oauth、JWT等待各種協議都支持
可以提供自研SDK,完美解決自研系統或者沒有標准介面應用的問題,只需要十幾行代碼就可以完成。
玉符單點登錄SSO已經實現產品化,交付迅速,時間短,安全性強,單點登錄全部通過token令牌實現,不會拿到用戶的密碼,安全可靠。
希望我的回答對你有幫助。

⑦ PHP和MySQL資料庫如何實現單點登錄

一般兩種方案:
1
共享SESSION(db,nosql等)
2
通過介面對每個域名下寫cookie(常見ucenter)。
至於那些在頁面上做處理,不現實的。一則涉及面廣,二則維護不方便,也不符合業務封裝(模塊化)的架構思維。
答題不易,互相理解,您的採納是我前進的動力,感謝您。

⑧ php 單點登錄

思路很簡單,只要5個子系統的用戶表信息是一樣的,那找到5個子系統的登陸寫入cookie或session代碼,將其統一一下就可以了!然後再找到判斷登陸狀態的代碼,也將其統一一下就OK!

⑨ php單點登陸(sso)實例

建一個在線用戶表 欄位 包括session_id,user_id,
如果你想 用戶登錄後沒有退出 用戶繼續使用相同賬戶 密碼登錄的話 踢出原來已經登錄的用戶
用戶登錄成功時,把sessuib_id,user_id插入到在線用戶表中
下次用戶登錄時 根據user_id查詢這個表 若有記錄取得相應的session_id 並刪除相應的session文件即可。

閱讀全文

與php如何實現單點登錄相關的資料

熱點內容
安卓qq郵箱格式怎麼寫 瀏覽:429
如何電信租用伺服器嗎 瀏覽:188
編程中計算根號的思維 瀏覽:181
可愛的程序員16集背景音樂 瀏覽:446
軟體代碼內容轉換加密 瀏覽:795
什麼app看電視不要錢的 瀏覽:16
烏班圖怎麼安裝c語言編譯器 瀏覽:278
plc通訊塊編程 瀏覽:923
我的世界伺服器怎麼清地皮 瀏覽:421
ftp伺服器如何批量改名 瀏覽:314
網易我的世界伺服器成員如何傳送 瀏覽:268
公司雲伺服器遠程訪問 瀏覽:633
法哲學pdf 瀏覽:637
清大閱讀app是什麼 瀏覽:447
怎麼用qq瀏覽器整體解壓文件 瀏覽:585
肺組織壓縮15 瀏覽:270
安卓手機為什麼換電話卡沒反應 瀏覽:797
諸子集成pdf 瀏覽:339
php注冊框代碼 瀏覽:718
手機加密好還是不加好好 瀏覽:815