JWT實現原理

參考:http://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html
https://www.cnblogs.com/xiangkejin/archive/2018/05/08/9011119.html

好好研究了下jwt登錄驗證,跟之前的token登錄驗證有些許不同,記錄下。

先來一張流程圖
在這裏插入圖片描述
其實就是多了一份驗籤和格式規範化。

返回給前端的字符串按點分割開有三部分:

  1. Header(頭部)
  2. Payload(負載)
  3. Signature(簽名)

header

{
  "alg": "HS256",// HMAC SHA256(寫成 HS256)
  "typ": "JWT"
}

payload

{
“iss”: “發行者”, 
“sub”: 主題”, 
“aud”: “受衆”, 
“exp”:”過期時間”, 
“iat”:”簽發時間” 
// 以下可以添加自定義數據 
“id”:”1”, 
“name”:”暱稱” 
}

signature // 是對前兩部分的簽名驗證,防止被篡改

// 公式如下  (secret是鹽)
HMACSHA256(
  base64UrlEncode(header) + "." +
  base64UrlEncode(payload),
  secret)

最後組成:base64(header)+base64(payload)+signature
在這裏插入圖片描述

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