优化登录时效配置

This commit is contained in:
TinyAnts 2022-11-17 15:18:45 +08:00
parent 522c698f6c
commit b13523ca5e
4 changed files with 27 additions and 7 deletions

View File

@ -9,6 +9,7 @@ import com.mdd.common.enums.HttpEnum;
import com.mdd.common.mapper.user.UserMapper; import com.mdd.common.mapper.user.UserMapper;
import com.mdd.common.utils.RedisUtil; import com.mdd.common.utils.RedisUtil;
import com.mdd.common.utils.StringUtil; import com.mdd.common.utils.StringUtil;
import com.mdd.common.utils.YmlUtil;
import com.mdd.front.config.FrontConfig; import com.mdd.front.config.FrontConfig;
import org.springframework.lang.NonNull; import org.springframework.lang.NonNull;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -78,22 +79,24 @@ public class LikeFrontInterceptor implements HandlerInterceptor {
.last("limit 1")); .last("limit 1"));
// 校验用户被删除 // 校验用户被删除
if (user.getIsDelete() == 1) { if (user.getIsDelete().equals(1)) {
AjaxResult<Object> result = AjaxResult.failed(HttpEnum.TOKEN_INVALID.getCode(), HttpEnum.TOKEN_INVALID.getMsg()); AjaxResult<Object> result = AjaxResult.failed(HttpEnum.TOKEN_INVALID.getCode(), HttpEnum.TOKEN_INVALID.getMsg());
response.getWriter().print(JSON.toJSONString(result)); response.getWriter().print(JSON.toJSONString(result));
return false; return false;
} }
// 校验用户被禁用 // 校验用户被禁用
if (user.getIsDisable() == 1) { if (user.getIsDisable().equals(1)) {
AjaxResult<Object> result = AjaxResult.failed(HttpEnum.LOGIN_DISABLE_ERROR.getCode(), HttpEnum.LOGIN_DISABLE_ERROR.getMsg()); AjaxResult<Object> result = AjaxResult.failed(HttpEnum.LOGIN_DISABLE_ERROR.getCode(), HttpEnum.LOGIN_DISABLE_ERROR.getMsg());
response.getWriter().print(JSON.toJSONString(result)); response.getWriter().print(JSON.toJSONString(result));
return false; return false;
} }
// 令牌剩余30分钟自动续签 // 令牌自动续签
if (RedisUtil.ttl(token) < 1800) { int tokenRenewTime = Integer.parseInt(YmlUtil.get("like.token-renew-time"));
RedisUtil.expire(token, 7200L); if (RedisUtil.ttl(token) < tokenRenewTime) {
long tokenValidTime = Long.parseLong(YmlUtil.get("like.token-valid-time"));
RedisUtil.expire(token, tokenValidTime);
} }
// 写入本地线程 // 写入本地线程

View File

@ -215,8 +215,10 @@ public class LoginServiceImpl implements ILoginService {
user.setLastLoginTime(System.currentTimeMillis() / 1000); user.setLastLoginTime(System.currentTimeMillis() / 1000);
userMapper.updateById(user); userMapper.updateById(user);
String token = ToolsUtil.makeToken(); String token = ToolsUtil.makeToken();
RedisUtil.set(FrontConfig.frontendTokenKey+token, user.getId(), 7200); int tokenValidTime = Integer.parseInt(YmlUtil.get("like.token-valid-time"));
RedisUtil.set(FrontConfig.frontendTokenKey+token, user.getId(), tokenValidTime);
LoginTokenVo vo = new LoginTokenVo(); LoginTokenVo vo = new LoginTokenVo();
vo.setId(user.getId()); vo.setId(user.getId());

View File

@ -4,6 +4,16 @@
"name": "like.upload-directory", "name": "like.upload-directory",
"type": "java.lang.String", "type": "java.lang.String",
"description": "Description for like.upload-directory." "description": "Description for like.upload-directory."
},
{
"name": "like.token-valid-time",
"type": "java.lang.String",
"description": "Description for like.token-valid-time."
},
{
"name": "like.token-renew-time",
"type": "java.lang.String",
"description": "Description for like.token-renew-time."
} }
] ]
} }

View File

@ -1,6 +1,11 @@
# 项目配置 # 项目配置
like: like:
upload-directory: /www/uploads/likeadmin-java/ # 上传目录 # 上传目录
upload-directory: /www/uploads/likeadmin-java/
# 登录有效时间 (单位秒)
token-valid-time: 7200
# 登录续签时间 (不足以下秒数续签)
token-renew-time: 1800
# 服务配置 # 服务配置
server: server: