场景
一般token里面要求放角色、用户id、用户名字,这时官方给的7个字段就不够了,所以需要自定义字段。
往JWT放值
String encryId = RCUtil.encrypt(id);
Map<String,Object> claims = new HashMap<>();
claims.put("deptId","101");
return Jwts.builder()
.signWith(SignatureAlgorithm.HS512, JWTConst.CONN_JWT_SECRET)
// 这里要早set一点,放到后面会覆盖别的字段
.setClaims(claims)
.setIssuer(JWTConst.CONN_JWT_ISS)
.setId(encryId)
.setSubject(username)
.setIssuedAt(new Date())
.setExpiration(new Date(System.currentTimeMillis() + expiration * 1000))
.compact();
取值
public static JwtToken getDeptId(String token){
Claims claims = getTokenBody(token);
JwtToken jwtToken = JSONObject.parseObject(JSONObject.toJSONString(claims),JwtToken.class);
return jwtToken;
}
其中JwtToken 对象未自定义对象。