Hi I'm Shendi
设置Token有效期
在 application.yml 中的 token:expireTime 处,单位为分钟
除此之外还可以在 com.wms.framework.web.service.TokenService 中的refreshToken处,进行如下更改,去掉有效期,永不过期(不推荐)
// redisCache.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
// 永不过期
redisCache.setCacheObject(userKey, loginUser);
设置自动续期时间
若依是自带自动续期的,但是是在离过期时间只剩20分钟,这个时候进行任何操作才会自动续期,对于某些场景,如硬件设备这种需要长待机的肯定不行,在issue中找到了答案,通过在 com.wms.framework.web.service.TokenService 的 verifyToken 函数中进行更改
例如改成离过期还剩一半时间自动续期
public void verifyToken(LoginUser loginUser)
{
long expireTime = loginUser.getExpireTime();
long currentTime = System.currentTimeMillis();
if (expireTime - currentTime <= this.expireTime * MILLIS_MINUTE / 2)
{
refreshToken(loginUser);
}
}
也可以更改为配置文件设置
public class TokenService {
// 剩余多少毫秒自动续期
@Value("${token.autoTime}")
private long autoTime;
public void verifyToken(LoginUser loginUser) {
long expireTime = loginUser.getExpireTime();
long currentTime = System.currentTimeMillis();
if (expireTime - currentTime <= autoTime)
{
refreshToken(loginUser);
}
}
}
配置文件中
token:
# 有效期还剩多久自动续期,毫秒,三个月
autoTime: 7776000000
END
本文链接:https://sdpro.top/blog/html/article/1242.html♥ 赞助 ♥
尽管去做,或许最终的结果不尽人意,但你不付出,他不付出,那怎会进步呢?