فهرست منبع

token过期设置。

lighter 3 سال پیش
والد
کامیت
5cf0c92a09

+ 10 - 6
src/main/java/thyyxxk/webserver/config/auth/AuthenticationInterceptor.java

@@ -86,12 +86,16 @@ public class AuthenticationInterceptor implements HandlerInterceptor {
             jwtVerifier.verify(token);
         } catch (JWTVerificationException e) {
             if (e.getMessage().contains(EXPIRED)) {
-                log.warn("【{}-{}】令牌已过期,自动刷新令牌。", userInfo.getCode(), userInfo.getName());
-                token = tokenService.getToken(userInfo);
-                JSONObject message = new JSONObject();
-                message.put("name", "refreshToken");
-                message.put("token", token);
-                WebSocketServer.sendMessageByUserCode(userInfo.getCode(), message.toJSONString());
+                if (code.equals("01897") || code.equals("02896")) {
+                    log.warn("【{}-{}】令牌已过期,自动刷新令牌。", userInfo.getCode(), userInfo.getName());
+                    token = tokenService.getToken(userInfo);
+                    JSONObject message = new JSONObject();
+                    message.put("name", "refreshToken");
+                    message.put("token", token);
+                    WebSocketServer.sendMessageByUserCode(userInfo.getCode(), message.toJSONString());
+                } else {
+                    throw new BizException(ExceptionEnum.TOKEN_EXPIRED);
+                }
             } else {
                 log.error("验证令牌出错!");
                 throw new BizException(ExceptionEnum.TOKEN_ERROR);

+ 1 - 0
src/main/java/thyyxxk/webserver/config/exception/ExceptionEnum.java

@@ -24,6 +24,7 @@ public enum ExceptionEnum {
 
     // 以下是需要弹窗提示并且重定向到登录页面
     TOKEN_NOT_EXIST(3001, "没有找到令牌,请重新登录!"),
+    TOKEN_EXPIRED(3001, "令牌已过期,请重新登录!"),
     TOKEN_ERROR(3001, "令牌错误,请重新登录!"),
     USER_NOT_EXIST(3002, "用户不存在,请重新登录!"),
     INVALID_PASSWORD(3003, "密码错误,请重新登录!"),