""" Настройки JWT токенов для аутентификации. """ from datetime import timedelta # ============================================== # SIMPLE JWT SETTINGS # ============================================== SIMPLE_JWT = { # Время жизни access токена (3 часа - достаточно для длинных уроков) 'ACCESS_TOKEN_LIFETIME': timedelta(hours=3), # Время жизни refresh токена (7 дней) 'REFRESH_TOKEN_LIFETIME': timedelta(days=7), # Обновлять refresh токен при каждом использовании 'ROTATE_REFRESH_TOKENS': True, # Добавлять старые refresh токены в blacklist 'BLACKLIST_AFTER_ROTATION': True, # Обновлять last_login при получении токена 'UPDATE_LAST_LOGIN': True, # Алгоритм подписи токена 'ALGORITHM': 'HS256', # Ключ для подписи (из settings) 'SIGNING_KEY': None, # Будет взят SECRET_KEY из settings # Верификация подписи 'VERIFYING_KEY': None, # Аудитория 'AUDIENCE': None, 'ISSUER': None, # Заголовки 'AUTH_HEADER_TYPES': ('Bearer',), 'AUTH_HEADER_NAME': 'HTTP_AUTHORIZATION', # Claim'ы токена 'USER_ID_FIELD': 'id', 'USER_ID_CLAIM': 'user_id', # Дополнительные claim'ы 'AUTH_TOKEN_CLASSES': ('rest_framework_simplejwt.tokens.AccessToken',), 'TOKEN_TYPE_CLAIM': 'token_type', # Leeway для учета расхождения времени между серверами 'JTI_CLAIM': 'jti', 'LEEWAY': 0, # Sliding tokens (не используем) 'SLIDING_TOKEN_REFRESH_EXP_CLAIM': 'refresh_exp', 'SLIDING_TOKEN_LIFETIME': timedelta(minutes=5), 'SLIDING_TOKEN_REFRESH_LIFETIME': timedelta(days=1), }