1、JWT简介
JWT 是一个开放标准(RFC 7519),它定义了一种用于简洁,自包含的用于通信双方之间以 JSON 对象的形式安全传递信息的方法。JWT 可以使用 HMAC 算法或者是 RSA 的公钥密钥对进行签名。它具备两个特点:
简洁(Compact)
可以通过URL, POST 参数或者在 HTTP header 发送,因为数据量小,传输速度快
自包含(Self-contained)
负载中包含了所有用户所需要的信息,避免了多次查询数据库
2.JWT的组成
一个JWT由三个部分组成:header,payload,signature。
header
jwt的头部有两部分信息构成:
- 声明类型,这里是jwt
- 声明加密算法,通常直接使用HMAC SHA256
完整的头部如下:
{
'typ':'JWT',
'alg':'HS256'
}
payload
载荷就是用来存放有效信息的地方。包含三个部分:
- 标准中注册的声明
- 公共的声明
- 私有的声明
signature
JWT的第三部分是一个签证信息,包含三个部分: