JWT(Json Web Token)

113 阅读1分钟

JWT(Json Web Token)

JWT结构

JWT 是由三段字符串与两个.组成,这三段字符串按顺序依次为

  • 头部:头部是一个Json对象,描述了诸如签名使用的算法(eg:HS256)、令牌类型等信息

  • 载荷:载荷是JWT的主体,也是Json对象,用于包含相关声明,通常包含三个部分:

    • 1.标准注册声明:

      • 预定义的声明,即标准规定的字段,并不强制使用,但一般推荐使用。它们有:

        • iss:JWT 的签发者/发行人

        • sub:该 JWT 面向的用户

        • aud:接收方

        • exp:JWT 的过期时间,必须大于签发时间

        • nbf:JWT 的生效时间,在这个时间之前该 token 都是无效的

        • iat:JWT 的签发时间

        • jti:JWT 唯一身份标识,主要用来作为一次性 toekn,从而避免重放攻击

    • 2.公共声明

      • 公共声明可以添加任何信息,一般添加用户的相关信息或业务信息。不建议添加敏感信息,因为该部分在客户端可解密。
    • 3.私有声明

      • 私有声明是服务器端与客户端共同定义的声明,同样不建议在这里添加敏感信息,因为 base64 是对称解密的,意味着该部分信息可以归类为明文信息。
  • 签名:JWT 的第3部分是一个签证信息,该签证信息由 3 个部分组成:

    • header(base64加密后)

    • payload(base64加密后)

    • secret