Проблема Django MIDDLEWARE с RemoteUsers - PullRequest
0 голосов
/ 03 апреля 2019

Мой settings.py:

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


MIDDLEWARE = [
    # ...
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.RemoteUserMiddleware',
    # ...
]

ModelBackend используется API-интерфейсом DRF для просмотра.

RemoteUserBackend используется приложением внешнего интерфейса.

Если пользователь входит в Browsable API, веб-интерфейс отправит как токен авторизации, так и токен сеанса. Обе учетные данные являются разными пользователями django.

AUTHENTICATION_BACKENDS предназначены для работы по заказу, но AuthenticationMiddleware идет первым в СРЕДНЕМ ОБЕСПЕЧЕНИИ, это обязательно.

Пользователь, прошедший аутентификацию сеанса, получает неправильные данные в приложении внешнего интерфейса. Django игнорирует учетные данные удаленного пользователя. Пользователь должен выйти из браузера с помощью API.

Как я могу это исправить?

1 Ответ

0 голосов
/ 04 апреля 2019

Только для записи.Я просто сделал выход из внешнего интерфейса при загрузке страницы.

...