From d21e551b42746e5c689c96e584042e418083ff9b Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Thu, 11 Mar 2021 16:06:18 +0800
Subject: [PATCH] tokenUtils更新

---
 screen-common/src/main/java/com/moral/util/TokenUtils.java |   86 +++++++++++++++++++++++++------------------
 1 files changed, 50 insertions(+), 36 deletions(-)

diff --git a/screen-common/src/main/java/com/moral/util/TokenUtils.java b/screen-common/src/main/java/com/moral/util/TokenUtils.java
index 77d2d17..7900fa2 100644
--- a/screen-common/src/main/java/com/moral/util/TokenUtils.java
+++ b/screen-common/src/main/java/com/moral/util/TokenUtils.java
@@ -1,5 +1,8 @@
 package com.moral.util;
 
+import com.moral.constant.Constants;
+import com.moral.exception.TokenException;
+import com.sun.org.apache.bcel.internal.classfile.ConstantString;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
@@ -31,13 +34,7 @@
     }
 
     //token��������� ������������
-    private static final int validity_time = 60*60*24*7;
-    //token������,������������
-    public static final int error = -1;
-    //token������
-    public static final int timeout = -2;
-    //token���������������������
-    public static final int valid = 1;
+    private static final int validity_time = 60*30;
 
     /**
      * @Description: ������token
@@ -46,69 +43,86 @@
      * @Author: ���������
      * @Date: 2021/3/10
      */
-    public static Map<String, Object> getToken(String uid, Map<String, Object> userInfo) {
-        Map<String, Object> result = new HashMap<>();
+    public static String getToken(String uid, Map<String, Object> userInfo) {
         //������������token
         try {
             //������token
             String token = TokenEncryptUtils.encoded(uid + "/" + System.currentTimeMillis() / 1000);
             //������������token
             String oldToken = (String) redisTemplate.opsForHash().get("user_token", uid);
-            if(oldToken!=null)
+            if (oldToken != null)
                 redisTemplate.delete(oldToken);
             //���token���������value���
             redisTemplate.opsForValue().set(token, userInfo);
             redisTemplate.expire(token, validity_time, TimeUnit.SECONDS);
             //���token���������Hash���
-            redisTemplate.opsForHash().put("user_token",uid,token);
-
-            result.put("code", valid);
-            result.put("token",token);
-        }catch (Exception e){
-            e.printStackTrace();
-            log.error(e.getMessage());
-            result.put("code",error);
+            redisTemplate.opsForHash().put("user_token", uid, token);
+            return token;
+        } catch (Exception e) {
+            log.error("token���������������"+e.getMessage());
+            throw new TokenException(Constants.CODE_TOKEN_CREATE_ERROR,Constants.MSG_TOKEN_CREATE_ERROR);
         }
-        return result;
+
     }
 
     /**
      * @Description: ������token
      * @Param: [type, token] type��� ���������������manage  ���������������api
-     * @return: java.util.Map<java.lang.String                               ,                               java.lang.Object>
+     * @return: java.util.Map<java.lang.String   ,   java.lang.Object>
      * @Author: ���������
      * @Date: 2021/3/10
      */
-    public static Map<String, Object> checkToken( String token) {
-        Map<String, Object> result = new HashMap<>();
+    public static void checkToken(String token) {
         try {
             String[] tokenArray = TokenEncryptUtils.decoded(token).split("/");
             //������token������������
             if (tokenArray.length != 2) {
-                result.put("code", error);
-                result.put("msg", "���������token");
-                return result;
+                throw new TokenException(Constants.CODE_TOKEN_ERROR,Constants.MSG_TOKEN_ERROR);
             }
             //������token������������
-            int tokenTime = Integer.parseInt(tokenArray[1]);
-            if ((System.currentTimeMillis() / 1000) - tokenTime > validity_time) {
-                result.put("code", timeout);
-                result.put("msg", "���������������������������������������");
-                return result;
+            if (!redisTemplate.hasKey(token)) {
+                throw new TokenException(Constants.CODE_TOKEN_ERROR,Constants.MSG_TOKEN_ERROR);
             }
-            result.put("code", valid);
-            return result;
         } catch (Exception e) {
             log.error("token���������������token������" + e.getMessage());
-            result.put("code", error);
-            result.put("msg", "���������token");
-            return result;
+            throw new TokenException(Constants.CODE_TOKEN_ERROR,Constants.MSG_TOKEN_ERROR);
         }
     }
 
-    //������token������������������
+    /**
+     * @Description: ������token������������������
+     * @Param: [token]
+     * @return: java.util.Map<java.lang.String   ,   java.lang.Object>
+     * @Author: ���������
+     * @Date: 2021/3/11
+     */
     public static Map<String, Object> getUserInfoByToken(String token) {
         Map<String, Object> userInfo = (Map<String, Object>) redisTemplate.opsForValue().get(token);
+        if(userInfo==null)
+            throw new TokenException(Constants.CODE_TOKEN_ERROR,Constants.MSG_TOKEN_ERROR);
         return userInfo;
     }
+
+    /**
+     * @Description: ������token
+     * @Param: [uid, token]
+     * @return: void
+     * @Author: ���������
+     * @Date: 2021/3/11
+     */
+    public static void destoryToken(String uid, String token) {
+        redisTemplate.delete("token");
+        redisTemplate.opsForHash().delete("user_token", uid);
+    }
+
+    /**
+    * @Description: token������
+            * @Param: [token]
+            * @return: void
+            * @Author: ���������
+            * @Date: 2021/3/11
+            */
+    public static void extendTokenTime(String token)  {
+        redisTemplate.expire(token, validity_time, TimeUnit.SECONDS);
+    }
 }

--
Gitblit v1.8.0