From ace6cd39557cd11adf44a38e5b060d3b5b01a744 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期四, 04 九月 2025 16:20:32 +0800
Subject: [PATCH] 修改判断
---
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
index 31fb6ac..661ab20 100644
--- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
@@ -145,7 +145,7 @@
public LoginUserParent getLoginUserStudy() {
LoginUserParent userStudy = getLoginUserStudy(ServletUtils.getRequest());
if (null == userStudy) {
- throw new StudyLoginException("登录失效,请重新登录!", 505);
+ throw new StudyLoginException("登录失效,请重新登录!", 600);
}
return userStudy;
}
@@ -219,6 +219,10 @@
if (StringUtils.isNotEmpty(token)) {
String userkey = JwtUtils.getUserKeyStudy(token);
user = redisService.getCacheObject(getTokenKeyStudy(userkey));
+ // 再次判断登录状态是否已过期
+ if (null == user) {
+ throw new StudyLoginException("登录信息已过期,请重新登录!", 504);
+ }
// 优先判断当前账号是否已在其他设备登录
if (!user.getIsCanLogin()) {
throw new StudyLoginException("当前登录账号在其他设备登录!", 505);
@@ -345,9 +349,13 @@
LoginUserParent redisUserInfo = JSONObject.parseObject(JSONObject.toJSONString(redisCacheUserInfo), LoginUserParent.class);
// 单点逻辑,如果当前用户已处于登录状态并再次登录,则清除该用户上一次登录token
if (dto.getUserid().equals(redisUserInfo.getUserid())) {
+ // 被挤账户 可登录状态 已经为 false时,跳出循环
+ if (!redisUserInfo.getIsCanLogin()) {
+ continue;
+ }
// 设置能否登录字段为 否,当该token登录时,isCanLogin为false表示账号被挤
redisUserInfo.setIsCanLogin(Boolean.FALSE);
- redisService.setCacheObject(strKey, redisUserInfo);
+ redisService.setCacheObject(strKey, redisUserInfo, redisService.getExpire(strKey), TimeUnit.SECONDS);
}
}
// 单点登录逻辑
--
Gitblit v1.7.1