Closed maxiao227 closed 5 years ago
可以在getUsername(token) 的时候try catch 一下这个异常 ExpiredJwtException
,当捕获到这个异常的时候你就可以做一些事情了,比如返回登陆已过期什么的
我这次low,就low到底了吧。
// 是否已过期 public static boolean isExpiration(String token){ return getTokenBody(token).getExpiration().before(new Date()); }
上面的方法来判断是否过期,但该方法使用了getTokenBody方法的话
private static Claims getTokenBody(String token){ return Jwts.parser() .setSigningKey(SECRET) .parseClaimsJws(token) //此处会报ExpiredJwtException 异常 .getBody(); }
也就是说,isExpiration不会正常返回true和false。有没有解决方法呀
这样不行吗
public static boolean isExpiration(String token) {
try{
return getTokenBody(token).getExpiration().before(new Date());
}catch (ExpiredJwtException e){
log.info("token expired");
return true;
}
}
isExpiration没用上 如果过期后,JwtTokenUtils.getUsername(token)就会报异常。怎么处理呀