要实现token的有效期失效,可以在生成token时设置过期时间,并在验证token时判断是否过期。具体实现步骤如下:

  1. 在JwtTokenUtils类中添加过期时间的常量,例如:
public static final long EXPIRATION_TIME = 864_000_000; // 10天
  1. 修改getToken方法,添加过期时间:
public static String getToken(String userId, String password) {
    Date now = new Date();
    Date expiryDate = new Date(now.getTime() + EXPIRATION_TIME);

    return Jwts.builder()
            .setSubject(userId)
            .setIssuedAt(new Date())
            .setExpiration(expiryDate)
            .signWith(SignatureAlgorithm.HS512, SECRET_KEY)
            .compact();
}
  1. 在验证token的方法中添加过期时间判断:
public static boolean validateToken(String token) {
    try {
        Jwts.parser().setSigningKey(SECRET_KEY).parseClaimsJws(token);
        return true;
    } catch (ExpiredJwtException e) {
        // token过期
        return false;
    } catch (JwtException | IllegalArgumentException e) {
        // token无效
        return false;
    }
}

这样,生成的token就会在指定的过期时间后失效。在验证token时,如果token已经过期,就会返回false,表示token无效

如何实现String token = JwtTokenUtilsgetTokenStringvalueOfusergetIdusergetPassword;的token有效期失效

原文地址: https://www.cveoy.top/t/topic/eNRT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录