JWTUtil 工具类 (hutool + Jackson 实现)
public class JWTUtil {
private static final String secret = "ewuodsjlugrejoilks";
/**
* 获取JWT token
* @param payload 保存到payload中的内容
* @param ttl 有效时间
* @return JWT token
*/
public static String getToken(Map<String, String> payload, int ttl) {
JWT jwt = JWT.create();
// 设置过期时间
Calendar expires = Calendar.getInstance();
expires.setTime(new Date());
expires.add(Calendar.SECOND, ttl);
jwt.setExpiresAt(expires.getTime());
// 设置payLoad
payload.forEach(jwt::setPayload);
// 设置密钥
jwt.setKey(secret.getBytes());
// 签发
return jwt.sign();
}
/**
* 根据key获取payload中的参数
* @param token JWT token
* @param key 参数关键值
* @return 关键值对应参数
*/
public static String getClaim(String token, String key) {
try {
return (String) JWT.of(token).getPayload().getClaim(key);
} catch (Exception e) {
return null;
}
}
/**
* 获取所有的payload参数
* @param token JWT token
* @return payload中所有参数
*/
public static Map<String, String> getClaims(String token) {
JSONObject claimsJson = JWT.of(token).getPayload().getClaimsJson();
ObjectMapper mapper = new ObjectMapper();
MapType mapType = mapper.getTypeFactory().constructMapType(HashMap.class, String.class, String.class);
try {
return mapper.readValue(claimsJson.toString(), mapType);
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
}
/**
* 判断JWT token是否有效
* @param token JWT token
* @return token是否有效 有效:true 无效:false
*/
public static Boolean verify(String token) {
return JWT.of(token).setKey(secret.getBytes()).verify();
}
}
本文是原创文章,转载请注明来自 Lazyking.site
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果
Steam卡片