技术分享 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 一旦签发便无法 “注销”,会一直有效直至过期
除非签发方增加额外的逻辑,例如:黑名单、白名单