dengsixing 3 年之前
父節點
當前提交
5e8dfdcd51

+ 1 - 1
4dkankan-common-web/src/main/java/com/fdkankan/web/realm/UserJwtRealm.java

@@ -77,7 +77,7 @@ public class UserJwtRealm extends AuthorizingRealm {
             throw new BusinessException(ErrorCode.TOKEN_ILLEGAL);
         }
         // TODO: 2021/12/21
-        SSOUser ssoUser = this.ssoLoginHelper.loginCheck(token);
+        SSOUser ssoUser = this.ssoLoginHelper.getSsoUser(token);
         if (ssoUser == null){
             throw new BusinessException(ErrorCode.TOKEN_NOT_FOUND);
         }

+ 11 - 2
4dkankan-common-web/src/main/java/com/fdkankan/web/user/SSOLoginHelper.java

@@ -13,8 +13,17 @@ public class SSOLoginHelper {
 
     public SSOUser loginCheck(String token) {
         if (token != null && token.trim().length() > 0) {
-            String username = JwtUtil.getUsername(token);
-            SSOUser ssoUser = ssoLoginStore.get(username);
+            SSOUser ssoUser = ssoLoginStore.get(token);
+            if (ssoUser != null) {
+                return ssoUser;
+            }
+        }
+        return null;
+    }
+
+    public SSOUser getSsoUser(String token) {
+        if (token != null && token.trim().length() > 0) {
+            SSOUser ssoUser = ssoLoginStore.getSsoUser(token);
             if (ssoUser != null) {
                 return ssoUser;
             }

+ 17 - 3
4dkankan-common-web/src/main/java/com/fdkankan/web/user/SSOLoginStore.java

@@ -18,6 +18,11 @@ public class SSOLoginStore {
 
     @Resource
     private RedisUtil redisUtil;
+
+    @Resource
+    @Qualifier("redisTemplate2")
+    private RedisTemplate redisTemplate2;
+
     /**
      * get
      * @param userName
@@ -32,10 +37,15 @@ public class SSOLoginStore {
         return null;
     }
 
+    public SSOUser getSsoUser(String token){
+        String tokenKey = getSSoUserTokenKey(token);
+        String objectValue =  redisUtil.get(tokenKey);
+        if (objectValue != null) {
+            return JSONObject.parseObject(objectValue, SSOUser.class);
+        }
+        return null;
+    }
 
-    @Resource
-    @Qualifier("redisTemplate2")
-    private RedisTemplate redisTemplate2;
 
     public com.fdkankan.web.model.SSOUser getV3(String token) {
         String redisKey = "token#".concat(token);
@@ -93,5 +103,9 @@ public class SSOLoginStore {
         return String.format(RedisKey.SSO_USER,userName);
     }
 
+    private static String getSSoUserTokenKey(String token){
+        return String.format(RedisKey.USER_TOKEN_KEY, token);
+    }
+
 
 }

+ 5 - 0
4dkankan-utils-redis/src/main/java/com/fdkankan/redis/constant/RedisKey.java

@@ -130,6 +130,11 @@ public class RedisKey {
     public static final String TOKEN_V3 = "token#%s";
 
     /**
+     * user类型token
+     */
+    public static final String USER_TOKEN_KEY = "token#%s";
+
+    /**
      * 场景协作管理
      */
     public static final String SCENE_COOPERATION_NUM_USERID = "scene:cooperation:num:userId";