JWT是json web token的简写,意为json格式的token。
什么是token
Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。
组成部分
header(头部)
header的作用主要是表明Signature使用的加密算法和token的类型
Payload(负载)
用于存放我们需要校验的信息,不要存放敏感信息,譬如密码。因为header和payload只经过base64编码,并没有加密是可以获取到的
Signature(签名)
这部分由header和payload的base64编码经过服务端的秘钥(这个很关键)加密组成。当用户携带这个token访问服务端时,我们就可以进行授权验证,如果payload被修改了,验证是不会通过的
依赖
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.0</version>
</dependency>
<dependency>
<groupId>com.auth0</groupId>