Browse Source

防止重复登录

gao.qiang 2 years ago
parent
commit
2c4b727056

+ 9 - 9
base-framework/src/main/java/com/ozs/framework/web/service/TokenService.java

@@ -75,10 +75,10 @@ public class TokenService
                 if(StringUtils.isEmpty(uuid)){
                     uuid = (String) claims.get(Constants.LOGIN_USER_KEY_APP);
                 }
-
-//                if (token.equals(redisCache.getCacheObject(token))) {
-//                    redisCache.setCacheObject(userKey, loginUser.getToken());
-//                }
+                String userId = redisCache.getCacheObject("userId");
+                if (!token.equals(userId)){
+                    return null;
+                }
                 String userKey = getTokenKey(uuid);
                 LoginUser user = redisCache.getCacheObject(userKey);
                 return user;
@@ -121,16 +121,17 @@ public class TokenService
      */
     public String createToken(LoginUser loginUser)
     {
-//        String token = IdUtils.fastUUID();
-        String token = loginUser.getUserId();
+        String token = IdUtils.fastUUID();
+//        String token = loginUser.getUserId();
         loginUser.setToken(token);
         setUserAgent(loginUser);
         refreshToken(loginUser);
 
         Map<String, Object> claims = new HashMap<>();
         claims.put(Constants.LOGIN_USER_KEY, token);
-        claims.put(loginUser.getToken(), loginUser.getToken());
-        return createToken(claims);
+        String token1 = createToken(claims);
+        redisCache.setCacheObject("userId", token1, expireTime, TimeUnit.MINUTES);
+        return token1;
     }
     /**
      * 创建令牌
@@ -178,7 +179,6 @@ public class TokenService
         loginUser.setExpireTime(loginUser.getLoginTime() + expireTime * MILLIS_MINUTE);
         // 根据uuid将loginUser缓存
         String userKey = getTokenKey(loginUser.getToken());
-        redisCache.setCacheObject(loginUser.getToken(), loginUser.getToken());
         redisCache.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
     }
     /**