如何实现String token = JwtTokenUtilsgetTokenStringvalueOfusergetIdusergetPassword;的token有效期失效
要实现token的有效期失效,可以在生成token时设置过期时间,并在验证token时判断是否过期。具体实现步骤如下:
- 在JwtTokenUtils类中添加过期时间的常量,例如:
public static final long EXPIRATION_TIME = 864_000_000; // 10天
- 修改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();
}
- 在验证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无效
原文地址: https://www.cveoy.top/t/topic/eNRT 著作权归作者所有。请勿转载和采集!