Токен авторизации Django возвращает AnonymousUser

Я пытаюсь получить пользователя из запроса. Мой клиент reactjs/postman отправляет токен в заголовке следующим образом:

'Authorization' : 'Token token_string'

По какой-то причине, когда я использую self.request.user в представлении (GET запрос), я получаю AnonymousUser.

Токен действителен, используя следующий код, я получаю правильного пользователя, а не AnonymousUser:

from rest_framework.authtoken.models import Token
from django.shortcuts import get_object_or_404

user = get_object_or_404(Token, pk=token_string).user

Вот мой set.py MIDDLEWARE:

    MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'whitenoise.middleware.WhiteNoiseMiddleware',
    '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',

]

Вот моя модель пользователя:

class User(django.contrib.auth.models.User):
  avatar = models.URLField(max_length=255, blank=True)
  date = models.DateTimeField(auto_now_add=True)  
  name =  models.CharField(max_length=256)

Примечание: когда я вызываю запрос через браузер после входа в Django admin, я получаю пользователя правильно.

Django присваивает 'AnonymousUser' request.user всякий раз, когда пользователь не вошел в систему, если вы вошли в админку Django, то вы вошли на сайт. Поэтому в этом случае вы получаете правильного пользователя.

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