Forráskód Böngészése

支持多端登录+ 强制退出

wuweihao 3 éve
szülő
commit
ed7c205fc2

+ 25 - 11
gis_admin/src/main/java/com/gis/admin/controller/LoginController.java

@@ -113,7 +113,7 @@ public class LoginController {
 
         // 保存操作日志
         saveLog(userId);
-        String loginKey = configConstant.redisPrefix + TypeCode.LOGIN_USER_KEY + userId;
+        String loginKey = configConstant.redisPrefix + TypeCode.LOGIN_USER_KEY + userId + ":" + token;
         redisUtil.setEx(loginKey, token, 23, TimeUnit.HOURS);
 
 
@@ -132,16 +132,30 @@ public class LoginController {
         return Result.success();
     }
 
-    @ApiOperation(value = "检查登录状态", notes = "true:已登录, false:已退出")
-    @GetMapping("/admin/checkLogin")
-    public Result checkLogin() {
-        String token = request.getHeader("token");
-        if (StrUtil.isBlank(token)) {
-            log.info("token is null");
-        }
-        String o = (String) redisUtil.get(configConstant.redisPrefix + token);
-        return Result.success(o != null);
-    }
+//    @ApiOperation(value = "检查登录状态", notes = "true:已登录, false:已退出")
+//    @GetMapping("/admin/checkLogin")
+//    public Result checkLogin() {
+//        String token = request.getHeader("token");
+//        if (StrUtil.isBlank(token)) {
+//            log.info("token is null");
+//        }
+//        String o = (String) redisUtil.get(configConstant.redisPrefix + token);
+//        return Result.success(o != null);
+//    }
+
+
+//    @ApiOperation(value = "删除redis")
+//    @GetMapping("/admin/redis")
+//    public Result redis() {
+//        String token = request.getHeader("token");
+//        if (StrUtil.isBlank(token)) {
+//            log.info("token is null");
+//        }
+//        Long userId = JwtUtil.getUserId(token);
+//        String loginKey = configConstant.redisPrefix + TypeCode.LOGIN_USER_KEY + userId;
+//        redisUtil.deleteAll(loginKey);
+//        return Result.success();
+//    }
 
 
 

+ 1 - 1
gis_admin/src/main/java/com/gis/admin/service/impl/SysUserServiceImpl.java

@@ -161,7 +161,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity
     private void delRedisByUserIds(List<String> ids){
         for (String id : ids) {
             String loginKey = configConstant.redisPrefix + TypeCode.LOGIN_USER_KEY + id;
-            redisUtil.delete(loginKey);
+            redisUtil.deleteAll(loginKey);
         }
     }
 

+ 2 - 1
gis_admin/src/main/java/com/gis/admin/shiro/ShiroRealm.java

@@ -128,7 +128,8 @@ public class ShiroRealm extends AuthorizingRealm {
         }
 
         Long userId = JwtUtil.getUserId(token);
-        String loginKey = configConstant.redisPrefix + TypeCode.LOGIN_USER_KEY + userId;
+//        String loginKey = configConstant.redisPrefix + TypeCode.LOGIN_USER_KEY + userId;
+        String loginKey = configConstant.redisPrefix + TypeCode.LOGIN_USER_KEY + userId + ":" + token;
         String redisToken = redisUtil.getCacheObject(loginKey);
 
         if (!token.equals(redisToken)) {