Ver Fonte

登录缓存处理

小么熊🐻 há 1 ano atrás
pai
commit
422a4e0063

+ 2 - 2
sdjk-admin/src/main/resources/application-dev.yml

@@ -23,7 +23,7 @@ spring:
             minIdle: 10
             # 最大连接池数量
             maxActive: 20
-            # 配置获取连接等待超时的时间
+            # 配置获取连接等待超时的时间db
             maxWait: 60000
             # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
             timeBetweenEvictionRunsMillis: 60000
@@ -60,7 +60,7 @@ spring:
         type: redis
     # redis 配置
     redis:
-        database: 2
+        database: 19
         # 地址
         host: sh-crs-lfzs3n8w.sql.tencentcdb.com
         # 端口,默认为6379

+ 2 - 2
sdjk-common/src/main/java/com/miaxis/common/core/domain/model/LoginUser.java

@@ -96,7 +96,7 @@ public class LoginUser implements UserDetails
 
     public LoginUser(UserInfo student) {
         this.student = student;
-        this.id= "student_"+student.getId();
+        this.id= "student:"+student.getId();
     }
 
     public String getToken()
@@ -123,7 +123,7 @@ public class LoginUser implements UserDetails
     {
         this.user = user;
         this.permissions = permissions;
-        this.id = "sysUser_"+user.getUserId();
+        this.id = "sysUser:"+user.getUserId();
     }
 
     @JsonIgnore

+ 8 - 7
sdjk-framework/src/main/java/com/miaxis/framework/web/service/TokenService.java

@@ -106,10 +106,10 @@ public class TokenService
      */
     public String createToken(LoginUser loginUser)
     {
-        String token = IdUtils.fastUUID();
-        loginUser.setToken(token);
-        setUserAgent(loginUser);
-        refreshToken(loginUser);
+        String token = IdUtils.fastUUID(); //获取一个uuid做token
+        loginUser.setToken(token);   //把token给到用户
+        setUserAgent(loginUser);     //设置用户登录信息
+        refreshToken(loginUser);     //用户保存到redis操作
 
         Map<String, Object> claims = new HashMap<>();
         claims.put(Constants.LOGIN_USER_KEY, token);
@@ -156,17 +156,18 @@ public class TokenService
             //确保唯一登录
             uniqueLogin(loginUser.getId(),userKey);  //互踢操作
         }
+        //保存用户key(方便以后查找用户信息)
+        redisCache.setCacheObject(loginUser.getId(),userKey, expireTime,TimeUnit.MINUTES);
+        //保存JWT用户信息
         redisCache.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
-
     }
 
     private void uniqueLogin(String id, String userKey) {
         String key = redisCache.getCacheObject(id);
         if (key != null){
             redisCache.deleteObject(key);
+            redisCache.deleteObject(id);
         }
-        redisCache.setCacheObject(id,userKey);
-
     }
 
     /**