Совместное использование mozilla-django-oidc и djangorestframework-simplejwt

У меня есть веб-сайт, для которого требуется аутентификация как по OIDC, так и по JWT. Чтобы достичь этого, я подумал об использовании пакетов mozilla-django-oidc и djangorestframework-simplejwt вместе.

Однако, похоже, они не работают вместе. Например, наличие следующего фрагмента кода в settings.py приводит к тому, что разрешены только токены доступа OIDC:

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
    ),
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'mozilla_django_oidc.contrib.drf.OIDCAuthentication',
        'rest_framework_simplejwt.authentication.JWTAuthentication',
        'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.BasicAuthentication',
    ),
    'DATE_FORMAT': '%b %d %Y',
}

в то время как следующий фрагмент кода приводит к разрешению только токенов доступа JWT:

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
    ),
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_simplejwt.authentication.JWTAuthentication',
        'mozilla_django_oidc.contrib.drf.OIDCAuthentication',
        'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.BasicAuthentication',
    ),
    'DATE_FORMAT': '%b %d %Y',
}

(Я использую маркер доступа, включив Bearer <token> в заголовки запроса.)

Как я могу настроить код, чтобы эти два пакета работали вместе?

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