Получить пользователя из нескольких аутентификационных бэкэндов - PullRequest
0 голосов
/ 26 февраля 2020

Django 2.2, python 3.6

Я использую 2 приложения аутентификации в своем приложении:

GRAPHENE = {
    'SCHEMA': 'my_main_app.all_schemas.schema',
    'MIDDLEWARE': [
        'graphql_jwt.middleware.JSONWebTokenMiddleware',
    ],
}

AUTHENTICATION_BACKENDS = [
    'graphql_jwt.backends.JSONWebTokenBackend',
    'django.contrib.auth.backends.ModelBackend',
]

Я могу получить информацию о пользователе с помощью метода запросов graphql, например:

@login_required
def resolve_curr_user(self, info, parent_id):
    user = info.context.user

Но я не могу получить пользователя из представления:

def curr_user(request):
    request.user # user is None

Я передаю правильные заголовки в запрос просмотра:

const headers = new Headers();
headers.append('Authorization', `JWT ${auth_token}`);
const init = {
    method: 'GET',
    headers: headers,
    mode: 'cors',
    cache: 'default'
};

const response = await fetch(`/curr_user_route`, init);

При аутентификации для В запросе graphql django вызывается метод authenticate из класса JSONWebTokenBackend.

Как мне сказать django для вызова того же метода для обычных представлений?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...