"""Project custom permissions""" from rest_framework.permissions import BasePermission from rest_framework_simplejwt.tokens import AccessToken class IsAuthenticatedAndTokenIsValid(BasePermission): """ Check if user has a valid token and authenticated """ def has_permission(self, request, view): """Check permissions by access token and default REST permission IsAuthenticated""" user = request.user access_token = request.COOKIES.get('access_token') if user.is_authenticated and access_token: access_token = AccessToken(access_token) valid_tokens = user.access_tokens.valid()\ .by_jti(jti=access_token.payload.get('jti')) return valid_tokens.exists() else: return False