From ef1f37541b768829ba9b7c8fe771f0633f8a488c Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期五, 30 九月 2022 09:45:35 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/service/data/TokenService.java |   78 ++++++++++++++++++++++++++++++++++++++-
 1 files changed, 76 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/lf/server/service/data/TokenService.java b/src/main/java/com/lf/server/service/data/TokenService.java
index 1007193..2800557 100644
--- a/src/main/java/com/lf/server/service/data/TokenService.java
+++ b/src/main/java/com/lf/server/service/data/TokenService.java
@@ -1,7 +1,7 @@
 package com.lf.server.service.data;
 
-import com.lf.server.entity.data.LoginEntity;
 import com.lf.server.entity.data.TokenEntity;
+import com.lf.server.entity.data.UsersEntity;
 import com.lf.server.entity.sys.RedisCacheKey;
 import com.lf.server.helper.StringHelper;
 import com.lf.server.helper.WebHelper;
@@ -13,6 +13,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.util.List;
+import java.util.concurrent.TimeUnit;
 
 /**
  * 浠ょ墝琛�
@@ -73,6 +74,13 @@
         return tokenMapper.selectTokenAll();
     }
 
+    /**
+     * 鑾峰彇鏂扮殑浠ょ墝瀹炰綋绫�
+     *
+     * @param userid
+     * @param req
+     * @return
+     */
     public TokenEntity getNewToken(int userid, HttpServletRequest req) {
         int duration = 240;
 
@@ -88,6 +96,13 @@
         return te;
     }
 
+    /**
+     * 鏄惁鐧诲綍
+     *
+     * @param req
+     * @param res
+     * @return
+     */
     public Boolean isLogin(HttpServletRequest req, HttpServletResponse res) {
         String token = WebHelper.getToken(req);
         if (StringHelper.isNull(token)) {
@@ -95,10 +110,69 @@
         }
 
         // redis
-        if (redisService.hasKey(RedisCacheKey.ssoKey(token))) {
+        if (redisService.hasKey(RedisCacheKey.signTokenKey(token))) {
             return true;
         }
 
         return false;
     }
+
+    /**
+     * 鏍规嵁浠ょ墝鑾峰彇瀹炰綋
+     *
+     * @param token
+     * @return
+     */
+    public TokenEntity getEntityByToken(String token) {
+        if (StringHelper.isNull(token)) {
+            return null;
+        }
+
+        String key = RedisCacheKey.signTokenKey(token);
+        Object obj = redisService.get(key);
+        if (obj != null && obj instanceof TokenEntity) {
+            return (TokenEntity) obj;
+        }
+
+        return null;
+    }
+
+    /**
+     * 淇濆瓨token
+     *
+     * @param te
+     * @param req
+     * @param res
+     */
+    public void saveToken(UsersEntity ue, TokenEntity te, HttpServletRequest req, HttpServletResponse res) {
+        // 淇濆瓨鑷矯ookie
+        WebHelper.saveToken2Cookie(te.getToken(), req, res);
+
+        // 浠ょ墝淇濆瓨鑷砇edis
+        String tokenKey = RedisCacheKey.signTokenKey(te.getToken());
+        redisService.put(tokenKey, te, te.getDuration(), TimeUnit.MINUTES);
+
+        String userKey = RedisCacheKey.signUserKey(te.getToken());
+        redisService.put(userKey, ue, te.getDuration(), TimeUnit.MINUTES);
+    }
+
+    /**
+     * 鑾峰彇褰撳墠鐢ㄦ埛
+     * @param req
+     * @return
+     */
+    public UsersEntity getCurrentUser(HttpServletRequest req) {
+        String token = WebHelper.getToken(req);
+        if (StringHelper.isEmpty(token)) {
+            return null;
+        }
+
+        String userKey = RedisCacheKey.signUserKey(token);
+        Object obj = redisService.get(userKey);
+        if (obj != null && obj instanceof UsersEntity) {
+            return (UsersEntity) obj;
+        }
+
+        return null;
+    }
 }

--
Gitblit v1.9.3