diff --git a/services/backend/api/v1/auth.py b/services/backend/api/v1/auth.py index bcc8870..75b571c 100644 --- a/services/backend/api/v1/auth.py +++ b/services/backend/api/v1/auth.py @@ -5,15 +5,19 @@ import jwt from django.conf import settings from django.http import HttpRequest from ninja.security import HttpBearer +from redis.exceptions import AuthorizationError from apps.user.models import User class BearerAuth(HttpBearer): def authenticate(self, request: HttpRequest, token: str) -> Any | None: - data = jwt.decode(token, settings.SECRET_KEY, algorithms=["HS256"]) - if data["exp"] < datetime.datetime.now().timestamp(): - return None + try: + data = jwt.decode(token, settings.SECRET_KEY, algorithms=["HS256"]) + if data["exp"] < datetime.datetime.now().timestamp(): + return None + except Exception: + raise AuthorizationError user = User.objects.get(id=data["id"]) return user