JWT令牌
/****
* 创建Jwt令牌
*/
@Test
public void testCreateJwt() {
JwtBuilder builder = Jwts.builder();
builder.setId("111"); //设置唯一编号
builder.setSubject("哈哈"); //设置主题 可以是JSON数据
builder.setIssuedAt(new Date(System.currentTimeMillis() + 100000)); //设置签发日期
//添加载荷信息
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("address","城市");
builder.addClaims(hashMap); //添加载荷信息
builder.signWith(SignatureAlgorithm.HS256, "txt");//设置签名 使用HS256算法,并设置SecretKey(字符串)
//构建 并返回一个字符串
System.out.println(builder.compact());
}
解析Jwt令牌:
/***
* 解析Jwt令牌数据
*/
@Test
public void testParseJwt() {
String compactJwt = "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI4ODgiLCJzdWIiOiLlsI_nmb0iLCJpYXQiOjE2MTQyNDYxNzMsImFkZHJlc3MiOiLkuIrmtbcifQ.K_thcWMQ3-J06J0tD7UzKHkM8dUAvBzi6G4RrcwmJLs";
Claims claims = Jwts.parser().
setSigningKey("txt").
parseClaimsJws(compactJwt).
getBody();
System.out.println(claims);
}