Jwt介绍:

  1. JWT头

    1. alg:表示签名算法
    2. typ:令牌类型
    {
    "alg":"HS256",
    "typ":"JWT"
    }
  2. 有效载荷 PayLoad(Claims)

    1. iss:发行人
    2. exp:到期时间
    3. sub:主题
    4. aud:用户
    5. nbf:在此之前不可用
    6. iat:发布时间
    7. jti:jwt id 标识一个JWt
    8. 私有字段
    {
    "iss":"xxx",
    "exp":"222",
    "sub":"loginedUSer",
    "nbf":"xxx",
    "aud":"user",
    "iat":"xxx",
    "jti":"xxx",
    "自定义字段":"value"
    }
  3. 签名哈希

    对上面两部分进行签名,使用指定算法生成前面哈希

    例子:

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

完整JWt字符串:

image-20220415151923617

拼装结构:

JWTString=Base64(Header).Base64(Payload).签名哈希