From 70ad20151a31752790a0ce7e224ab4b387820851 Mon Sep 17 00:00:00 2001 From: "DESKTOP-932OMT8\\REN" Date: Mon, 16 Jun 2025 21:40:09 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91=20?= =?UTF-8?q?=E8=B4=A6=E5=8F=B7=E5=8F=AA=E8=83=BD=E7=99=BB=E5=BD=95=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E5=AD=A6=E7=94=9F=E7=AB=AF=E6=88=96=E8=80=85=E5=90=8E?= =?UTF-8?q?=E5=8F=B0=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/auth/AuthController.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/exam-module-system/exam-module-system-biz/src/main/java/pc/exam/pp/module/system/controller/admin/auth/AuthController.java b/exam-module-system/exam-module-system-biz/src/main/java/pc/exam/pp/module/system/controller/admin/auth/AuthController.java index 85470d3a..08b5006d 100644 --- a/exam-module-system/exam-module-system-biz/src/main/java/pc/exam/pp/module/system/controller/admin/auth/AuthController.java +++ b/exam-module-system/exam-module-system-biz/src/main/java/pc/exam/pp/module/system/controller/admin/auth/AuthController.java @@ -2,9 +2,11 @@ package pc.exam.pp.module.system.controller.admin.auth; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; +import org.springframework.data.redis.core.StringRedisTemplate; import pc.exam.pp.framework.common.enums.CommonStatusEnum; import pc.exam.pp.framework.common.enums.UserTypeEnum; import pc.exam.pp.framework.common.pojo.CommonResult; +import pc.exam.pp.framework.common.util.json.JsonUtils; import pc.exam.pp.framework.security.config.SecurityProperties; import pc.exam.pp.framework.security.core.util.SecurityFrameworkUtils; import pc.exam.pp.framework.tenant.core.aop.TenantIgnore; @@ -12,6 +14,7 @@ import pc.exam.pp.module.infra.dal.dataobject.config.ConfigDO; import pc.exam.pp.module.infra.service.config.ConfigService; import pc.exam.pp.module.system.controller.admin.auth.vo.*; import pc.exam.pp.module.system.convert.auth.AuthConvert; +import pc.exam.pp.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; import pc.exam.pp.module.system.dal.dataobject.permission.MenuDO; import pc.exam.pp.module.system.dal.dataobject.permission.RoleDO; import pc.exam.pp.module.system.dal.dataobject.user.AdminUserDO; @@ -36,6 +39,7 @@ import org.springframework.web.bind.annotation.*; import java.util.Collections; import java.util.List; +import java.util.Map; import java.util.Set; import static pc.exam.pp.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -72,6 +76,8 @@ public class AuthController { @Resource private ConfigService configService; + @Resource + private StringRedisTemplate stringRedisTemplate; @GetMapping("/login_config") @PermitAll @@ -96,6 +102,15 @@ public class AuthController { if (Integer.parseInt(reqVO.getUserType()) == 2) { if (Integer.parseInt(adminUserDO.getUserType()) <= 1) return error(STUDENT_USERNAME_NOTLOGIN); } + Set oauth2_access_token_set = stringRedisTemplate.keys("oauth2_access_token:*"); + for (String oauth2_access_token : oauth2_access_token_set) { + OAuth2AccessTokenDO oAuth2AccessTokenDO = JsonUtils.parseObject(stringRedisTemplate.opsForValue().get(oauth2_access_token), OAuth2AccessTokenDO.class); + // 判断账号是否登录过 + if (oAuth2AccessTokenDO.getUserInfo().get("username").equals(reqVO.getUsername())) { + // 说明登录了,别的地方登录了,请重新登录 + return CommonResult.error(900001, "该账号已经登录"); + } + } return success(authService.login(reqVO)); }