使用jwt和rsa非對稱加密無狀態登陸

首先,說一下大概的流程。算法

   用戶登陸時,會將頁面輸入的帳戶密碼傳入對應的微服務中,而如今微服務中尚未當前用戶的認證,由此微服務再轉發給註冊中心,註冊中心再訪問用戶中心,用戶中心經過調取數據庫中的信息,數據庫

對傳過來的信息進行覈對,覈實正確後使用非對稱加密造成一個公鑰與私鑰,私鑰本身保存,公鑰分發給各個微服務,而後用戶再次登陸時,當前的微服務就擁有公鑰,經過公鑰解密就能夠驗證用戶微服務

是否正確。正確就放行經過。加密

  jwt含有三個部分,分別是Header,載荷,簽名。spa

  header:包含有jwt 當前的聲明的定義,還有base64算法。jwt

  載荷:主要存放當前的有效信息。token

  簽名:主要是對header與負載中的有效信息使用密鑰加密生成token。it

 

  

  • 受權流程:base64

    • 一、用戶請求登陸,攜帶用戶名密碼到受權中心class

    • 二、受權中心攜帶用戶名密碼,到用戶中心查詢用戶

    • 三、查詢若是正確,生成JWT憑證

    • 四、返回JWT給用戶

  • 鑑權流程:

    • 一、用戶請求某微服務功能,攜帶JWT

    • 二、微服務將jwt交給受權中心校驗

    • 三、受權中心返回校驗結果到微服務

    • 四、微服務判斷校驗結果,成功或失敗

    • 五、失敗則直接返回401

    • 六、成功則處理業務並返回

相關文章
相關標籤/搜索