Мой 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.
Как я могу это исправить?