jwt全称是:json web token。它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证token的正确性,只要正确即通过验证。
优点
- 简洁: 可以通过URL、POST参数或者在HTTP header发送,因为数据量小,传输速度也很快;
- 自包含:负载中可以包含用户所需要的信息,避免了多次查询数据库;
- 因为Token是以JSON加密的形式保存在客户端的,所以JWT是跨语言的,原则上任何web形式都支持;
- 不需要在服务端保存会话信息,特别适用于分布式微服务。
缺点
- 无法作废已颁布的令牌;
- 不易应对数据过期。
其中,一个token由三部分组成,按顺序分别为头部(header
)、载荷(payload
)、签证(signature
),他们之间由(.)来分割
如下,这就是个token:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiIxIiwiZXhwIjoxNjY1MjM1OTIzfQ.MDseivlpKLjDi-k-NnH40_kOJmrtStrdhcHB4daxc60
一、导入项目依赖
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</