參考: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登錄驗證有些許不同,記錄下。
先來一張流程圖
其實就是多了一份驗籤和格式規範化。
返回給前端的字符串按點分割開有三部分:
- Header(頭部)
- Payload(負載)
- 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