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登录验证有些许不同,记录下。

先来一张流程图
JWT实现原理_第1张图片
其实就是多了一份验签和格式规范化。

返回给前端的字符串按点分割开有三部分:

  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
JWT实现原理_第2张图片

你可能感兴趣的:(小知识)