首先,說一下大概的流程。
用戶登錄時,會將頁面輸入的賬戶密碼傳入對應的微服務中,而現在微服務中還沒有當前用戶的認證,由此微服務再轉發給注冊中心,注冊中心再訪問用戶中心,用戶中心通過調取數據庫中的信息,
對傳過來的信息進行核對,核實正確后使用非對稱加密形成一個公鑰與私鑰,私鑰自己保存,公鑰分發給各個微服務,然后用戶再次登錄時,當前的微服務就擁有公鑰,通過公鑰解密就可以驗證用戶
是否正確。正確就放行通過。
jwt含有三個部分,分別是Header,載荷,簽名。
header:包含有jwt 當前的聲明的定義,還有base64算法。
載荷:主要存放當前的有效信息。
簽名:主要是對header與負載中的有效信息使用密鑰加密生成token。
-
-
1、用戶請求登錄,攜帶用戶名密碼到授權中心
-
2、授權中心攜帶用戶名密碼,到用戶中心查詢用戶
-
3、查詢如果正確,生成JWT憑證
-
4、返回JWT給用戶
-
-
鑒權流程:
-
1、用戶請求某微服務功能,攜帶JWT
-
2、微服務將jwt交給授權中心校驗
-
3、授權中心返回校驗結果到微服務
-
4、微服務判斷校驗結果,成功或失敗
-
5、失敗則直接返回401
-
6、成功則處理業務並返回
-