Запрос не получается из url во время применения промежуточного ПО (даже при входе в систему)
У меня есть проект Django, включающий rest API.
После того, как я добавил промежуточное ПО в свой проект, я не могу получить доступ к своему api через модули запросов, хотя я вошел в систему. но доступ возможен, когда я ввожу адрес в url.
middlewares.py
from django.http import HttpResponseRedirect
from django.contrib import messages
LOGIN_EXEMPT_URLS = [
'/api/',
]
class LoginMiddleWare:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
if not request.user.is_authenticated and request.path not in LOGIN_EXEMPT_URLS:
messages.error(request, 'You should login first!', 'warning')
return HttpResponseRedirect('/api/')
response = self.get_response(request)
return response
settings.py
MIDDLEWARE = [
'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',
'djangoProject_app.middlewares.LoginMiddleWare',
]
Я считаю, что вам нужно добавить эти 3 строки кода:
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',
'djangoProject_app.middlewares.LoginMiddleWare',
]
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True