Django Custom Middleware получает AnonymousUser даже для вошедших в систему пользователей

Я использую пользовательское промежуточное ПО, которое выглядит следующим образом:

class DisallowLoggedInUsers:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        # Code to be executed for each request before
        # the view (and later middleware) are called.
        print("in interceptor before response")
        print("user: ", request.user)
        print("is_authenticated?: ", request.user.is_authenticated)

        response = self.get_response(request)

        # Code to be executed for each request/response after
        # the view is called.
        print("in interceptor after response")
        print("user: ", request.user)
        print("is_authenticated?: ", request.user.is_authenticated)

        return response

У меня также есть похожие логи внутри метода get представления. Вот вывод журнала:

in interceptor before response
user: AnonymousUser
is_authenticated? False

in view
user: John Doe/john@test.domain
is_authenticated?  True

in interceptor after response
user: John Doe/john@test.domain
is_authenticated?  True

Вот мой порядок промежуточного оборудования:

MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',
    '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',
    'userdata.customInterceptor.DisallowLoggedInUsers',
]

Хотя я поместил свое пользовательское промежуточное ПО намного ниже по порядку (ниже AuthenticationMiddleware), объект request.user не устанавливается, пока представление не будет обработано. Я даже пробовал отлавливать запрос в process_view промежуточного ПО, но все равно получил там AnonymousUser.

Что я делаю не так?

Я на Django 3.1.7 и djangorestframework 3.12.3.

Примечание: Я проверил этот связанный вопрос, но это не помогло.

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