1. 背景
JWT结合shiro在一起可以实现登录,本文就可以详细的做一些阐述
2. JWT 使用demo
public class JWTTest {
private Long time = 1000 * 60 * 60 * 24L;
private String signature = "admin";
@Test
public void test(){
JwtBuilder jwtBuilder = Jwts.builder();
String jwtToken = jwtBuilder.setHeaderParam("typ", "JWT")
.setHeaderParam("alg", "HS256")
.claim("username", "roy")
.claim("role", "admin")
.setSubject("admin-test")
.setExpiration(new Date(System.currentTimeMillis() + time))
.setId(UUID.randomUUID().toString())
//signature
.signWith(SignatureAlgorithm.HS256, signature)
.compact();
System.out.println(jwtToken);
System.out.println("开始解密");
parse(jwtToken);
}
public void parse(String jwtToken){
JwtParser jwtParser = Jwts.parser();
Jws<Claims> claimsJws = jwtParser.setSigningKey(signature)
.parseClaimsJws(jwtToken);
Claims claims = claimsJws.getBody();
System.out.println(claims.get("username"));
System.out.println(claims.get("role"));
System.out.println(claims.getId());
System.out.println(claims.getSubject());
System.out.println(claims.getExpiration());
}
}