Джанго с JWT. Как использовать оба? Используйте механизм аутентификации токена JWT из restframework-jwt для доступа к django-admin - PullRequest
0 голосов
/ 08 октября 2019

У меня есть следующие настройки: у меня есть приложение Django и Vue.js во внешнем интерфейсе. Когда пользователь входит в веб-интерфейс, он получает JWT, а следующие запросы имеют токен в заголовках, и здесь все в порядке. Но когда я указываю на приложение, которое имеет интерфейс администратора / admin / filer /, появляется сообщение, что я не вошел в систему, и мне нужно войти в систему, используя механизм входа по умолчанию. Вот мой конфиг

Даже если я отправлю запрос с подписанным JWT - он все равно не работает

REST_FRAMEWORK = {
        'DEFAULT_AUTHENTICATION_CLASSES': [
            'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
            # 'rest_framework.authentication.SessionAuthentication',
        ],
        'DEFAULT_PERMISSION_CLASSES': [
            'rest_framework.permissions.IsAuthenticatedOrReadOnly',
        ],
        'DEFAULT_FILTER_BACKENDS': [
            'django_filters.rest_framework.DjangoFilterBackend'
        ],
        'ORDERING_PARAM': 'sort',
    }
    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.common.CommonMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
        'reversion.middleware.RevisionMiddleware',
    ]
    JWT_AUTH = {
        'JWT_EXPIRATION_DELTA': timedelta(days=7),
        'JWT_VERIFY_EXPIRATION':False,
        'JWT_REFRESH_EXPIRATION_DELTA': timedelta(days=7),
        'JWT_RESPONSE_PAYLOAD_HANDLER': 'apps.auth_module.utils.jwt_response_payload_handler',
    }
...