From 613dd76a3aded439f1002d904d85d8332ddb03d1 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Thu, 17 Sep 2020 15:22:29 +0800
Subject: [PATCH] 登陆获取信息分离,webToken添加redis

---
 src/main/java/com/moral/common/interceptor/WebInterceptor.java |   15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/moral/common/interceptor/WebInterceptor.java b/src/main/java/com/moral/common/interceptor/WebInterceptor.java
index 9ed4c8a..1b7be06 100644
--- a/src/main/java/com/moral/common/interceptor/WebInterceptor.java
+++ b/src/main/java/com/moral/common/interceptor/WebInterceptor.java
@@ -7,6 +7,8 @@
 import com.auth0.jwt.exceptions.JWTVerificationException;
 import com.auth0.jwt.interfaces.Claim;
 import com.moral.common.exception.WebAuthException;
+import com.moral.common.util.RedisHashUtil;
+import com.moral.common.util.WebTokenUtils;
 import com.moral.common.webAnno.PassToken;
 import com.moral.common.webAnno.UserLoginToken;
 import com.moral.entity.Account;
@@ -35,13 +37,15 @@
     @Resource
     AccountService accountService;
 
+    @Resource
+    RedisHashUtil redisHashUtil;
+
     @Override
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {
         response.setHeader("Access-Control-Allow-Origin", "*");
         response.setHeader("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");
         response.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
         String token = request.getHeader("token");
-        Enumeration<String> headerNames = request.getHeaderNames();
         //������������������������������������������
         if(!(o instanceof HandlerMethod)){
             return true;
@@ -68,9 +72,7 @@
                 //������ID
                 String id = "";
                 try {
-                    Map<String, Claim> claims = JWT.decode(token).getClaims();
-                    Claim accountId = claims.get("aid");
-                    id = accountId.asString();
+                    id = WebTokenUtils.getIdBytoken(token);
                 }catch (JWTDecodeException e){
                     throw new WebAuthException("401,token������");
                 }
@@ -90,6 +92,11 @@
                     throw new WebAuthException("401,token������������������");
                 }
 
+                //������token������������������������
+                String redisToken = (String)redisHashUtil.getMapVal("webToken",id);
+                if(token.equals(redisToken))
+                    throw new WebAuthException("401,token������");
+
                 return true;
             }
         }

--
Gitblit v1.8.0