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