场景

一般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 对象未自定义对象。

java如何通过jwt获取userid_代码片