實現單點登入功能的思路以及kafka同步資料

2022-03-13 16:22:38 字數 718 閱讀 5761

單點登入以及使用者資料同步思路與方案

當公司業務分布於多個子系統時,

同一使用者在a系統註冊,即可在其他所有關聯系統使用,

並支援登入a系統後,自動在其他系統登入,退出同理。

在a平台修改通用的使用者資料(比如密碼),及時通知其它平台進行更新資料。

每個系統有自己單獨的使用者表,用於各自的業務邏輯,但使用者id與主使用者表相同,其他資料根據需要可以放到主使用者表,也可以放到各個系統中進行同步。

主使用者表單獨儲存和處理,我們公司是由中颱進行單獨管理,即單點登入

當我們在a系統進行單點登入時,會獲取乙個新的token(由中颱生成),我們將它儲存在a系統的使用者表,

當我們訪問a系統的業務資料時,先判斷使用者是否登入,就是通過token欄位,有token並且a系統的使用者表存在該token即代表登入

那麼a系統登入後,其他系統也登入了,怎麼實現?

每次當中臺生成新token時,即代表有使用者使用密碼登入了,此時通過kafka發布訊息,各子系統監聽到訊息後,自動更新最新的token到各自的使用者表。

此時,當瀏覽器中快取有token,訪問其他子系統時,帶上該token,即視為已登入使用者。

退出同理,當然還有基礎使用者資料修改、以及token過期等處理。

kafka的好處,在於將使用者剝離出來,使各個系統中的使用者表互不干擾。只需處理好kafka的訊息佇列即可,從外部看,就好像各個子系統的使用者表毫無關係,但內裡確實有機結合的。

單點登入的解決思路

有個問題 我以前一直弄不清楚 那就是 在登入第乙個系統之後 如何登入第二個系統 我以為是通過超連結進去的 但是看了那麼多的資料 又覺得 應該是在位址列直接輸位址進去的 可是這樣新的問題就來了 登入第二個系統的時候 如何知道第乙個系統已經登入了 靠什麼傳輸乙個標誌 這個問題 我到目前為止想到 兩種解決...

單點登入的實現方式

單點登入sso single sign on 說得簡單點就是在乙個多系統共存的環境下,使用者在一處登入後,就不用在其他系統中登入,也就是使用者的一次登入能得到其他所有系統的信任。單點登入在大型 裡使用得非常頻繁,例如像阿里巴巴這樣的 在 的背後是成百上千的子系統,使用者一次操作或交易可能涉及到幾十個...

單點登入SSO的實現原理

單點登入sso的實現原理 單點登入sso single sign on 說得簡單點就是在乙個多系統共存的環境下,使用者在一處登入後,就不用在其他系統中登入,也就是使用者的一次登入能得到其他所有系統的信任。單點登入在大型 裡使用得非常頻繁,例如像阿里巴巴這樣的 在 的背後是成百上千的子系統,使用者一次...