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; } }