From 46771bcb3b9cf35916a22c200d054185ee1bcf3f Mon Sep 17 00:00:00 2001 From: click33 <2393584716@qq.com> Date: Mon, 22 Apr 2024 02:37:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9Ajwt=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=20token=20=E8=BF=87=E6=9C=9F=E5=90=8E=EF=BC=8C?= =?UTF-8?q?=E6=8A=9B=E5=87=BA=E7=9A=84=E5=BC=82=E5=B8=B8=E6=8F=8F=E8=BF=B0?= =?UTF-8?q?=E6=98=AF=20token=20=E5=B7=B2=E8=BF=87=E6=9C=9F=EF=BC=8C?= =?UTF-8?q?=E8=80=8C=E4=B8=8D=E5=86=8D=E6=98=AF=20token=20=E6=97=A0?= =?UTF-8?q?=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/dev33/satoken/jwt/StpLogicJwtForMixin.java | 5 +++++ .../java/cn/dev33/satoken/jwt/StpLogicJwtForStateless.java | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/sa-token-plugin/sa-token-jwt/src/main/java/cn/dev33/satoken/jwt/StpLogicJwtForMixin.java b/sa-token-plugin/sa-token-jwt/src/main/java/cn/dev33/satoken/jwt/StpLogicJwtForMixin.java index 8903b563..54bf771f 100644 --- a/sa-token-plugin/sa-token-jwt/src/main/java/cn/dev33/satoken/jwt/StpLogicJwtForMixin.java +++ b/sa-token-plugin/sa-token-jwt/src/main/java/cn/dev33/satoken/jwt/StpLogicJwtForMixin.java @@ -21,6 +21,7 @@ import java.util.Map; import cn.dev33.satoken.context.SaHolder; import cn.dev33.satoken.dao.SaTokenDao; import cn.dev33.satoken.exception.ApiDisabledException; +import cn.dev33.satoken.exception.NotLoginException; import cn.dev33.satoken.jwt.error.SaJwtErrorCode; import cn.dev33.satoken.jwt.exception.SaJwtException; import cn.dev33.satoken.stp.SaTokenInfo; @@ -105,6 +106,10 @@ public class StpLogicJwtForMixin extends StpLogic { Object loginId = SaJwtUtil.getLoginId(tokenValue, loginType, jwtSecretKey()); return String.valueOf(loginId); } catch (SaJwtException e) { + // CODE == 30204 时,代表token已过期,此时返回-3,以便外层更精确的显示异常信息 + if(e.getCode() == SaJwtErrorCode.CODE_30204) { + return NotLoginException.TOKEN_TIMEOUT; + } return null; } } diff --git a/sa-token-plugin/sa-token-jwt/src/main/java/cn/dev33/satoken/jwt/StpLogicJwtForStateless.java b/sa-token-plugin/sa-token-jwt/src/main/java/cn/dev33/satoken/jwt/StpLogicJwtForStateless.java index 9be8b18d..42aeffbe 100644 --- a/sa-token-plugin/sa-token-jwt/src/main/java/cn/dev33/satoken/jwt/StpLogicJwtForStateless.java +++ b/sa-token-plugin/sa-token-jwt/src/main/java/cn/dev33/satoken/jwt/StpLogicJwtForStateless.java @@ -18,6 +18,7 @@ package cn.dev33.satoken.jwt; import cn.dev33.satoken.context.SaHolder; import cn.dev33.satoken.dao.SaTokenDao; import cn.dev33.satoken.exception.ApiDisabledException; +import cn.dev33.satoken.exception.NotLoginException; import cn.dev33.satoken.jwt.error.SaJwtErrorCode; import cn.dev33.satoken.jwt.exception.SaJwtException; import cn.dev33.satoken.listener.SaTokenEventCenter; @@ -132,6 +133,10 @@ public class StpLogicJwtForStateless extends StpLogic { Object loginId = SaJwtUtil.getLoginId(tokenValue, loginType, jwtSecretKey()); return String.valueOf(loginId); } catch (SaJwtException e) { + // CODE == 30204 时,代表token已过期,此时返回-3,以便外层更精确的显示异常信息 + if(e.getCode() == SaJwtErrorCode.CODE_30204) { + return NotLoginException.TOKEN_TIMEOUT; + } return null; } }