package com.fr.plugin; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; import java.util.Date; /** * 客户提供的类未做修改 * * * @author zst * @date 2022-06-02 */ public class JwtUtil { //JWT密钥 public static final String JWT_SECRET = "xx"; /** * 验证token是否失效 * * @param token * @param secret * @return true:过期 false:没过期 */ public static boolean isTokenExpired(String token, String secret) { Date expiration = getExpirationDateFromToken(token, secret); return expiration.before(new Date()); } /** * 从token中获取用户id * * @param token * @param secret * @return */ public static String getUserIdFromToken(String token, String secret) { return getClaimFromToken(token, secret).getSubject(); } /** * 获取token发布时间 * * @param token * @param secret * @return */ public static Date getIssuedAtDateFromToken(String token, String secret) { return getClaimFromToken(token, secret).getIssuedAt(); } /** * 获取token失效时间 * * @param token * @param secret * @return */ public static Date getExpirationDateFromToken(String token, String secret) { return getClaimFromToken(token, secret).getExpiration(); } /** * 获取token接收者 * * @param token * @param secret * @return */ public static String getAudienceFromToken(String token, String secret) { return getClaimFromToken(token, secret).getAudience(); } /** * 获取私有claim * * @param token * @param key * @param secret * @return */ public static String getPrivateClaimFromToken(String token, String key, String secret) { return getClaimFromToken(token, secret).get(key).toString(); } /** * 获取jwt的payload部分 * * @param token * @param secret * @return */ private static Claims getClaimFromToken(String token, String secret) { return Jwts.parser().setSigningKey(secret).parseClaimsJws(token).getBody(); } }