php session實現(xiàn)單點登錄單點登錄系統(tǒng)的分析與設(shè)計與分析(一)php session登錄
2022-02-13
概括:
本文主要介紹了一個通用的單點登錄系統(tǒng)的分析與設(shè)計。具體實現(xiàn)語言為PHP。單點登錄,英文名稱Sign On小程序開發(fā),縮寫為SSO,是企業(yè)和網(wǎng)絡(luò)服務(wù)綜合用戶處理的重要組成部分。SSO的定義是在多個應(yīng)用系統(tǒng)中,用戶只需要登錄一次,就可以訪問所有相互信任的應(yīng)用系統(tǒng)。
動機:
用過全站登錄方式的朋友應(yīng)該都知道,這是典型的觀察者模式方案。作為用戶中心,其財物的注冊和刪除在后臺統(tǒng)一進行。并且每個子應(yīng)用站點對應(yīng)一個。用戶中心的每一次登錄動作都會觸發(fā)js腳本回調(diào)w3c標(biāo)準(zhǔn)子站點登錄接口(api/uc.php)。
這種方式的缺點,我覺得主要有兩點: 1. 當(dāng)子站點過多時,回調(diào)接口會相應(yīng)增加。這是由于分布式子站點數(shù)量的限制。如何控制登錄效率不會太低,不確定;2.當(dāng)某個變電站的回調(diào)接口出現(xiàn)問題時,默認(rèn)登錄進程會卡住(登錄程序的執(zhí)行時間可以限制,但是變電站后面的變電站回調(diào)接口對應(yīng)的問題將被調(diào)用。不再。
基于以上問題,在實際開發(fā)過程中,我設(shè)計了另一套單點登錄系統(tǒng)。
一. 登錄原理說明
單點登錄的技術(shù)實現(xiàn)機制:用戶第一次訪問應(yīng)用系統(tǒng)1時,由于尚未登錄,會被引導(dǎo)到認(rèn)證系統(tǒng)登錄;認(rèn)證系統(tǒng)根據(jù)用戶提供的登錄信息進行身份驗證。為進行驗證,應(yīng)將身份驗證憑據(jù)返回給用戶--;當(dāng)用戶訪問其他應(yīng)用程序時,他們會將其作為自己的身份驗證憑據(jù)。應(yīng)用系統(tǒng)接受請求后,將其發(fā)送給認(rèn)證系統(tǒng)進行驗證。檢查合法性。若驗證通過網(wǎng)站制作,用戶無需重新登錄即可訪問應(yīng)用系統(tǒng)2和應(yīng)用系統(tǒng)3。
可見,要實現(xiàn)SSO,需要以下主要功能:
a) 所有應(yīng)用系統(tǒng)共享一個身份認(rèn)證系統(tǒng);
b) 所有應(yīng)用系統(tǒng)都可以識別和提取信息;
c) 應(yīng)用系統(tǒng)可以識別已登錄的用戶,并自動判斷當(dāng)前用戶是否已登錄,從而完成單點登錄功能
基于以上基本原理,我設(shè)計了一套php語言的單點登錄系統(tǒng)程序,已投入官方生成服務(wù)器運行。本系統(tǒng)程序以整個系統(tǒng)的唯一id為媒介,獲取當(dāng)前在線用戶的全站信息(登錄狀態(tài)信息等需要處理的全站信息)。
二. 進程描述:
登錄流程:
1. 第一次登錄站點:
a) 用戶輸入用戶名+密碼,向用戶驗證中心發(fā)送登錄請求
b) 當(dāng)前登錄站點,通過請求,用戶驗證中心驗證用戶名和密碼的合法性。如果驗證通過,則生成識別當(dāng)前會話的用戶php session實現(xiàn)單點登錄,并將當(dāng)前登錄分站的站點標(biāo)識記錄到用戶中心,最后
c) 將獲取的用戶數(shù)據(jù)返回給子站。如果驗證失敗,則返回相應(yīng)的錯誤狀態(tài)碼。
d) 根據(jù)上一步請求返回的結(jié)果,當(dāng)前分站為用戶進行登錄處理:如果狀態(tài)碼表示成功,則通過本站保存當(dāng)前站點,本站記錄用戶登錄地位。如果狀態(tài)碼表示失敗,則會給用戶相應(yīng)的登錄失敗提示。
2. 在登錄狀態(tài)下,用戶轉(zhuǎn)到另一個子:
a) 通過本站或驗證用戶登錄狀態(tài):如果驗證通過,則進入正常的站點處理程序;否則,用戶中心會驗證用戶的登錄狀態(tài)(發(fā)送到用戶驗證中心)php session實現(xiàn)單點登錄,如果驗證通過,則處理返回的用戶信息。本地登錄處理,否則用戶未登錄。
注銷過程
a) 當(dāng)前登出站,清除用戶網(wǎng)站的登錄狀態(tài)和本地保存的用戶唯一隨機id
b) 通過接口清除全站記錄的全站唯一隨機id。界面返回,注銷其他注冊子站的密碼,本站輸出該密碼。
c) js代碼訪問對應(yīng)站W(wǎng)3C標(biāo)準(zhǔn)的登出腳本
三. 代碼說明:
本文涉及的相關(guān)代碼已打包上傳。有興趣的可以點擊文末下載鏈接下載。
1