JWT-токен успешно истек, но все еще можно получить доступ к API Django

Я использую JWT токен в django. Я установил время доступа к токену на '1 минуту' через 1 минуту доступ & обновление токена истекает, но когда я пытаюсь получить доступ к API url, он дает доступ и показывает данные.

я проверяю с помощью verifyToken тот же токен показывает недействительным. и используя тот же токен для вызова api он показывает success=True и печатает 'hello1'

Может ли кто-нибудь сказать мне, что не так с JWT? Посмотрите приведенный ниже код для справки.

JWT Docs for referance. https://django-rest-framework-simplejwt.readthedocs.io/en/latest/

Код:

Setting.py

SIMPLE_JWT = {
    'ACCESS_TOKEN_LIFETIME': timedelta(minutes=1),
    'REFRESH_TOKEN_LIFETIME': timedelta(days=1),
    'ROTATE_REFRESH_TOKENS': False,
    'BLACKLIST_AFTER_ROTATION': True,
    'UPDATE_LAST_LOGIN': False,

    'ALGORITHM': 'HS256',
    'SIGNING_KEY': SECRET_KEY,
    'VERIFYING_KEY': None,
    'AUDIENCE': None,
    'ISSUER': None,

    'AUTH_HEADER_TYPES': ('Bearer', ),
    'AUTH_HEADER_NAME': 'HTTP_AUTHORIZATION',
    'USER_ID_FIELD': 'id',
    'USER_ID_CLAIM': 'user_id',

    'AUTH_TOKEN_CLASSES': ('rest_framework_simplejwt.tokens.AccessToken',),
    'TOKEN_TYPE_CLAIM': 'token_type',

    'JTI_CLAIM': 'jti',

    'SLIDING_TOKEN_REFRESH_EXP_CLAIM': 'refresh_exp',
    'SLIDING_TOKEN_LIFETIME': timedelta(minutes=1),
    'SLIDING_TOKEN_REFRESH_LIFETIME': timedelta(days=1),
}
REST_FRAMEWORK = {

    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
    ),
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_simplejwt.authentication.JWTAuthentication',
    ),
    'DEFAULT_PAGINATION_CLASS': 'slash.controllers.pagination.PageNumberCustomPagination',
    'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema',
}
CRONJOBS = [
    ('0 23 * * *', 'slash.cron.delete_expired_blacklisted_token'),
]
CORS_ALLOW_METHODS = (
    'GET',
    'POST',
    'PUT',
    'PATCH',
    'DELETE',
    'OPTIONS'
)
DRF_API_LOGGER_DATABASE = True
DRF_LOGGER_QUEUE_MAX_SIZE = 50
DRF_LOGGER_INTERVAL = 10
DRF_API_LOGGER_EXCLUDE_KEYS = ['password', 'token', 'access', 'refresh'] # Sensitive data will be replaced with "***FILTERED***".
DRF_API_LOGGER_SLOW_API_ABOVE = 200 

URLS.py

path('token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
path('token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
path('token/verify/', TokenVerifyView.as_view(), name='token_verify'),
path('token/blacklist/', TokenBlacklistView.as_view(), name='token_blacklist'),
path('api/student/', StudentAPI.as_view({'post': 'student'}), name='student'),

Views.py

from requests import Response
from rest_framework.permissions import IsAuthenticated
from rest_framework.viewsets import ViewSet
from rest_framework.response import Response
from rest_framework import status


class StudentAPI(ViewSet):
    permission_classes = [IsAuthenticated]

    def student(self, request, *args, **kwargs):
        print('hello1')
        return Response({"success": True}, status=status.HTTP_200_OK)

`

Я следовал полной документации по JWT django auth, но все равно столкнулся с той же проблемой.

Вернуться на верх