Closed
Description
版本号:
2.0.2
问题描述:
ShiroRealm.jwtTokenRefresh方法内判断token是否过期优化。
!JwtUtil.verify(token, userName, passWord)
改为
!JwtUtil.verify(cacheToken, userName, passWord)
如果没有过期,只设置过期时间,不用重新设置token的值;
redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, cacheToken);
截图&代码:
public boolean jwtTokenRefresh(String token, String userName, String passWord) {
String cacheToken = String.valueOf(redisUtil.get(CommonConstant.PREFIX_USER_TOKEN + token));
if (oConvertUtils.isNotEmpty(cacheToken)) {
// 校验token有效性
if (!JwtUtil.verify(token, userName, passWord)) {
String newAuthorization = JwtUtil.sign(userName, passWord);
redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, newAuthorization);
// 设置超时时间
redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME / 1000);
} else {
redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, cacheToken);
// 设置超时时间
redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME / 1000);
}
return true;
}
return false;
}
Activity
zhangdaiscott commentedon Aug 9, 2019
非常感谢,这个问题已经发现,下个版本发布