SpringBoot JWT快速开发
spring-boot-jwt 添加依赖
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
application.yml配置
config:
jwt:
# 加密密钥
secret: 加密密匙
# token有效时长
expire: 3600
# header 名称
header: token
jwt代码实现
String jwt = Jwts.builder()
.setId("1")
.setHeaderParam("typ", "JWT")
.setSubject("subject")
.setIssuer("user")
.setIssuedAt("建议动态加密")
.setExpiration(expireDate)
.signWith(SignatureAlgorithm.HS512, secret)
.compact();
jwt解析代码实现
Jws<Claims> claimsJws = Jwts.parser().setSigningKey(secret).parseClaimsJws(token);
System.out.println(claimsJws.getBody().getId());
System.out.println(claimsJws.getBody().getSubject());
System.out.println(claimsJws.getBody().getIssuer());
System.out.println(claimsJws.getBody().getIssuedAt());
System.out.println(claimsJws.getBody().getExpiration());
System.out.println(claimsJws.getHeader().getType());
System.out.println(claimsJws.getHeader().getAlgorithm());
System.out.println(claimsJws.getSignature());
建议将JWT进行二次加密
JWT载荷
iss:发行人
exp:到期时间
sub:主题
aud:用户
nbf:在此之前不可用
iat:发布时间
jti:JWT的ID