單點登入 使用者中心大致流程

2021-08-05 18:34:12 字數 2045 閱讀 5644

客戶端需要登入後才能執行的操作,在***interceptor中設定。第一次訪問客戶端***(攔截所有登入後才能做的操作,目錄規劃時要規劃好,

/back**

),沒有

token

,跳轉到使用者中心伺服器

(response.sendredirect(url))

,(url

中帶著returnurl

,用來在使用者中心登入成功後跳轉回客戶端正在訪問的頁面),登入成功後,生產

token

,並且將

token

追加到returnurl

上,同時在伺服器端

session

中儲存登入成功獲得的

admin

,在服務

constatfinalutil

的常量中建立乙個

map,並且將鍵值對「

token」,

「adminjson

」(變成

json

是為了方便與客戶端傳輸)儲存到

map中(實際上是放到redis中),跳轉回帶著

token

的returnurl

,及返回客戶端。

這時候第二次訪問客戶端***,已經帶上

token

。有了token

還不行,需要到使用者中心中去核對是不是使用者中心生成的

token

(防止使用者自己自己加

token

),這時候用到乙個

url類,可以獲取指定**返回的內容,可以封裝成

工具類。具體做法是將版本號

version

、加密資訊、

token

等資訊打包成

json

物件,用

工具類連線訪問到使用者中心的

verifytokenservie

服務,來驗證

token

等資訊是否正確(驗證

token

通過在生成

token

的map

中查詢鍵是「

token

」的admin

是否為null

如果為null

這證明此

token

沒有,如果不為

null

則證明token

是真的),如果

token

驗證為真,則將得到的

admin

、成功資訊等打包成

json

格式,返回

,再返回到客戶端

interceptor

,這時候客戶端就有了

admin

等資訊了。

強調:(1)客戶端與使用者中心互動,由於是兩個伺服器通過

協議傳遞資訊,所以

admin

等資訊都是先封裝成

json

格式,再用

json.tojsonstring,

轉換成json

格式的字串傳遞,另一端接收後再用

json.parse()

轉換為json

物件。

(2)第一次生成admin後在伺服器端的

session

中儲存,可以在伺服器端記錄客戶端使用者登入狀態,訪問之前先看

session

中有沒有

admin

,如果得到值不為

null

,則證明此使用者已經在使用者中心登入過;客戶端第一次接收到

admin

也在儲存在

session

,可以在客戶端記錄使用者登入資訊,使用者訪問時如果

session

中的「admin

」不為null

則證明已經登入過,就不用去使用者中心登入了。

用一副圖簡易表示:

單點登入流程

單點登入流程 通過過濾器或者 進行攔擊請求操作,使用 實現handlerinterceptor不只是要將bean注入,還要新增配置類實現webmvcconfig 並實現addinteceptor方法 1 建立單點登入伺服器,所有的登入通過訪問單點登入伺服器進行登入然後給客戶端傳送令牌 2 訪問客戶端...

使用者登入 單點登入

首先是為啥要用單點登入的問題,單點登入也就是sso sso是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。1 任何系統都必須去登陸伺服器進行登入 2 伺服器就記住了登入狀態 3 其他系統訪問受保護資源,需要再次登入,跳轉到sso server登入的時候,伺服器告訴客戶端,已...

檢視登入使用者

一 超級使用者及普通使用者redhat 7.x版本 超級使用者 root uid 0 普通使用者 uid 1000 65535 系統使用者 偽使用者 uid 1 999 redhat7.x版本之前的版本 例如6.4 6.0 5.0 4.0 3.0等 超級使用者 root uid 0 普通使用者 ui...