В соответствии с этим обсуждением я использую решение cancan101 для этого обсуждения https://github.com/jpadilla/django-rest-framework-jwt/issues/45. Я создал файл middleware.py в своем приложении, и в моем приложении его код выглядит как
from rest_framework.request import Request
from django.utils.functional import SimpleLazyObject
from django.contrib.auth.middleware import get_user
from rest_framework_jwt.authentication import JSONWebTokenAuthentication
from django.utils.deprecation import MiddlewareMixin
def get_user_jwt(request):
user = get_user(request)
if user:
return user
try:
user_jwt = JSONWebTokenAuthentication().authenticate(Request(request))
if user_jwt is not None:
return user_jwt[0]
except:
pass
return user
class AuthenticationMiddlewareJWT(MiddlewareMixin , object):
def process_request(self, request):
assert hasattr(request, 'session'), "The Django authentication middleware requires session middleware to be installed. Edit your MIDDLEWARE_CLASSES setting to insert 'django.contrib.sessions.middleware.SessionMiddleware'."
request.user = SimpleLazyObject(lambda: get_user_jwt(request))
, а мои настройки промежуточного программного обеспечения
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'CustomerWeb.middleware.AuthenticationMiddlewareJWT',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
Теперь, когда я отлаживаю в этом промежуточном программном обеспечении, я Я получаю пользователя правильно, но в моем view.py он все еще не пользователь. Что я здесь не так делаю? заранее спасибо