當前位置:首頁 » 編程語言 » php單點

php單點

發布時間: 2023-01-11 05:30:07

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

㈢ 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、直接網上找一個單點登錄系統,把這2個系統整合到一起,
2、自己寫一個單點登錄系統,藉助中間表,比如你以java系統為主,在java系統裡面嵌入了php系統,當點擊php系統的欄目時就先去中間表check一下,然後直接跳到你的php系統上面就好,
3、如果沒有許可權啥的,你就直接放一個連接傳用戶名和密碼直接登錄訪問也行。

㈤ php 單點登錄的一些問題

你指的是同步登錄吧,就是在一個地方登錄帳號,其他網站也會同步登錄上帳號。
一般的做法是在登錄的時候發送打開其他網站預留的同步登錄網頁,這樣就可以實現同步登錄了,可以參考一下ucenter,這個是用的比較多的。

㈥ php 單點登錄

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

㈦ 詳解PHP如何實現單點登錄

可以配合session和資料庫(或緩存如redis或memcache)實現,具體步驟如下:

  1. 在登錄成功後保存一個時間戳+隨機字元的值,這個值暫時叫sign。把這個值存入資料庫(緩存),同時也存入session中。

  2. 寫一個函數,功能如下:讀取資料庫(緩存)中的sign,跟session中的sign對比。如不一致,則注銷當前session並提示:當前用戶已在其他地方登錄,你被頂下線。這個函數放到「鉤子」裡面,實現在每一個操作步驟之前都先調用此函數。

這樣,一個簡單的單點登錄功能就實現了。原理其實很簡單,就是每次登錄都把資料庫(緩存)裡面的sign都覆蓋一遍,這樣當之前登錄的人檢測到這個sign不一致以後就強制下線。

㈧ php 怎麼實現單點登錄

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

熱點內容
安卓平板微軟平板和蘋果哪個好 發布:2025-07-12 19:09:37 瀏覽:413
資料庫地區 發布:2025-07-12 19:05:41 瀏覽:395
如何檢查vds腳本 發布:2025-07-12 19:04:24 瀏覽:908
命令行編譯vs2013 發布:2025-07-12 19:01:22 瀏覽:808
c語言輸出所有素數 發布:2025-07-12 19:01:19 瀏覽:659
查電費賬號密碼多少 發布:2025-07-12 18:56:19 瀏覽:545
吉利遠景x1標配配置有哪些 發布:2025-07-12 18:56:18 瀏覽:533
智能演算法pdf 發布:2025-07-12 18:46:07 瀏覽:400
php生成短鏈接 發布:2025-07-12 18:44:37 瀏覽:843
sql表的聯合 發布:2025-07-12 18:44:30 瀏覽:664