diff --git a/fastapi_jwt_auth/auth_jwt.py b/fastapi_jwt_auth/auth_jwt.py index efb1518..fe2cae1 100644 --- a/fastapi_jwt_auth/auth_jwt.py +++ b/fastapi_jwt_auth/auth_jwt.py @@ -13,6 +13,7 @@ AccessTokenRequired, RefreshTokenRequired, FreshTokenRequired, + TokenExpired ) @@ -711,6 +712,8 @@ def _verified_token( leeway=self._decode_leeway, algorithms=algorithms, ) + except jwt.ExpiredSignatureError: + raise TokenExpired(403, 'Token expired') except Exception as err: raise JWTDecodeError(status_code=422, message=str(err)) diff --git a/fastapi_jwt_auth/config.py b/fastapi_jwt_auth/config.py index 8e8429c..eef23c1 100644 --- a/fastapi_jwt_auth/config.py +++ b/fastapi_jwt_auth/config.py @@ -97,5 +97,5 @@ def validate_csrf_methods(cls, v): return response class Config: - min_anystr_length = 1 - anystr_strip_whitespace = True + str_min_length = 1 + str_strip_whitespace = True diff --git a/fastapi_jwt_auth/exceptions.py b/fastapi_jwt_auth/exceptions.py index 1057571..d953128 100644 --- a/fastapi_jwt_auth/exceptions.py +++ b/fastapi_jwt_auth/exceptions.py @@ -87,3 +87,11 @@ class FreshTokenRequired(AuthJWTException): def __init__(self, status_code: int, message: str): self.status_code = status_code self.message = message + +class TokenExpired(AuthJWTException): + """ + Error raised when token expired + """ + def __init__(self,status_code: int, message: str): + self.status_code = status_code + self.message = message