(五十七) springcloud+springcloud+vue+uniapp分佈式微服務電商 商城之JWT(Json Web Token)是什麼?

JWT(Json Web Token)是爲了在網絡應用環境間傳遞聲明而執行的一種基於 Json 的開放標準。JWT 的聲明一般被用來在身份提供者和服務提供者間傳遞被認證的用戶身份信息,以便於從資源服務器獲取資源。

比如用在用戶登錄上時,基本思路就是用戶提供用戶名和密碼給認證服務器,服務器驗證用戶提交信息的合法性;如果驗證成功,會產生並返回一個 Token,用戶可以使用這個 Token 訪問服務器上受保護的資源。

JWT 由三部分構成,第一部分稱爲頭部(Header),第二部分稱爲消息體(Payload),第三部分是簽名(Signature)。一個 JWT 生成的 Token 格式爲:

token = encodeBase64(header) + '.' + encodeBase64(payload) + '.' + encodeBase64(signature)

 

頭部的信息通常由兩部分內容組成,令牌的類型和使用的簽名算法,比如下面的代碼:

{
  "alg": "HS256", 
  "typ": "JWT"
}

消息體中可以攜帶一些你需要的信息,比如用戶 ID。因爲你得知道這個 Token 是哪個用戶的,比如下面的代碼:

{
  "id": "1234567890", 
  "name": "John Doe", 
  "admin": true
}

簽名是用來判斷消息在傳遞的路上是否被篡改,從而保證數據的安全性,格式如下:

HMACSHA256( base64UrlEncode(header)  + "." +  base64UrlEncode(payload), secret)

通過這三部分就組成了我們的 Json Web Token。更多介紹可以查看 JWT 官網 https://jwt.io/introduction/

推薦電子商務源碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章