基於JWT和Oauth2 實現 SSO 單點登入

2021-09-21 01:12:17 字數 697 閱讀 5120

1. jwt 的特點:

自包含: 在jwt裡面可以包含很多資訊,可從伺服器解析,而不僅僅是一串沒有意義的字串。

密簽: 安全簽名,防止別人篡改。

可擴充套件: 因為jwt可以包含有用的資訊,所以其具有不俗的擴充套件性。

如圖:

1. 流程:

訪問應用a服務,會跳到認證伺服器的登入頁面,輸入使用者名稱和密碼登入後,再訪問應用b服務時不需要再登入了。

注1 :怎麼確定應用a和應用b是同乙個使用者呢? 答:根據同乙個瀏覽器的sessionid相同,也就是應用a和應用b都用乙個瀏覽器時,sessionid相同。

注2 :應用a和應用b可以拿到同乙個使用者的資訊,但是拿到的jwt不同。

2. **結構:

說明 :

sso-client1 : 應用1

sso-client2 : 應用2

sso-parent : 頂層父工程(pom格式)

sso-server : 認證伺服器

因為涉及**並不複雜,**可見筆者的git倉庫,在此部落格中不再贅述 ↓

OAuth2簡易實戰(三) JWT

授權伺服器 修改 configuration enableauthorizationserver public class oauth2authorizationserver extends authorizationserverconfigureradapter bean public jwtto...

OAuth2與JWT的區別和聯絡

jwt json web token 是一種具體的token實現框架 oauth2 open authorization 是一種授權協議,是規範,不是實現 spring security oauth2 spring 對 oauth2 的開源實現,優點是能與spring cloud技術棧無縫整合 sp...

擴充套件jwt解決oauth2 效能瓶頸

資源伺服器的請求都會被攔截 到認證伺服器校驗合法性 如下圖 如上步驟在實際使用,會造成認證中心的負載壓力過大,成為造成整個系統瓶頸的關鍵點。check token 過程中涉及的原始碼 bean public tokenenhancer tokenenhancer final mapadditiona...