Увеличение срока действия токена JWT - PullRequest
0 голосов
/ 09 июня 2018

Я интегрировал токен JWT с django-restframwork, здесь я установил время истечения 15 минут JWT_EXPIRATION_DELTA, но он истекает раньше указанного времени (1 минута), и мне нужно обновить токен для продолжения ... PFB me configuration

Python 3.5
Django==2.0.5
djangorestframework==3.8.2
djangorestframework-simplejwt==3.2.3

Setting.py

REST_FRAMEWORK = {
    # Use Django's standard `django.contrib.auth` permissions,
    # or allow read-only access for unauthenticated users.
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
    ],
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_simplejwt.authentication.JWTAuthentication',
        'rest_framework.authentication.BasicAuthentication',
        'rest_framework.authentication.SessionAuthentication',
    )
} 

JWT_AUTH = {
    'JWT_EXPIRATION_DELTA': datetime.timedelta(seconds=900),
    'JWT_ALLOW_REFRESH': True,
    'JWT_REFRESH_EXPIRATION_DELTA': datetime.timedelta(days=7),
}

Пожалуйста, помогите, я здесь ошибаюсь.

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Вы все еще можете использовать djangorestframework-simplejwt и вместо этого изменить время в файле настроек

settings.py

from datetime import timedelta

...

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

    'ALGORITHM': 'HS256',
    'SIGNING_KEY': settings.SECRET_KEY,
    'VERIFYING_KEY': None,

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

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

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

Извлечь https://github.com/davesque/django-rest-framework-simplejwt

0 голосов
/ 09 июня 2018

Вы используете djangorestframework-simplejwt, но ваша конфигурация для djangorestframework-jwt.Пожалуйста, удалите djangorestframework-simplejwt и установите djangorestframework-jwt.

pip uninstall djangorestframework-simplejwt

затем

pip install djangorestframework-jwt Подробнее здесь

...