JWT的簡單認知

JWT

json web token 解決前後端分離的認證問題,其實還是一種session,只不過這種session並不在服務端存儲,而是在客戶端存儲

基本原理

服務端認證生成二段json,然後對json按設定的加密方法進行加密,然後返回給前端,服務器是無狀態的

數據結構

有3個部分, header+payload+signature,官網例子,下圖的紅色部分是header,紫色是payload存儲數據的部分,藍色是加密的簽名認證部分
在這裏插入圖片描述

  1. header部分,對json字符串進行base64Url加密,內容
{
 "alg": "HS256", //加密算法
 "typ": "JWT"//可以省略
}
  1. payload部分,實際傳遞的數據,也是json字符串base64Url加密,可以自定義
{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022 
}

不能把私密或者重要的信息放到這裏,因爲這裏信息是可以隨便加密解密的
3. signature部分,簽名認證部分,有前2部分base64Url加密之後的信息,加上自己的secret,按照第一部分的設定的加密算法,得到一個簽名

HMACSHA256(
  base64UrlEncode(header) + "." +
  base64UrlEncode(payload),
  your-256-bit-secret
)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章