技术分享 JWT

JWT,JSON Web Token。

一、什么是 JWT?

JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. This information can be verified and trusted because it is digitally signed. JWTs can be signed using a secret (with the HMAC algorithm) or a public/private key pair using RSA or ECDSA.

JWT,JSON Web Token,它可以在各方之间以 JSON 对象的形式安全地传输信息。

二、结构

JWT 由三个部分组成,用 . 进行分隔。三个部分依次为:

  • 头部:头部对象中包含了 JWT 的描述信息,包括签名的算法、token 的类型;头部是头部对象经 Base64 编码后的结果

    1
    2
    3
    4
    {
    "alg": "HS256",
    "typ": "JWT"
    }
  • 负载:负载对象中存储着实际需要传递的数据,可以自定义字段并放入;负载是负载对象经 Base64 编码后的结果

  • 签名:由密钥、头部、负载等三个部分加密产生

三、特点

  • JWT 中的信息只经过简单的 Base64 编码,持有者可以轻易地读取,不应放入敏感信息

  • JWT 通过签名实现了 “防篡改” 和 “防伪造”,只有掌握密钥才能生成合法的 JWT

  • JWT 一旦签发便无法 “注销”,会一直有效直至过期

    除非签发方增加额外的逻辑,例如:黑名单、白名单

参考