Ошибка Django 403 при использовании метода POST через Front end (Angular Js)
views.py
class ExtendUserSession(MiddlewareMixin):
"""
Extend authenticated user's sessions so they don't have to log back in
next 15 minutes (set by Django's default `SESSION_COOKIE_AGE` setting).
"""
def process_request(self, request):
# Only extend the session for auth'd users
if request.user.is_authenticated:
reason = CsrfViewMiddleware('get_response').process_view(request, None, (), {})
if reason:
# process_view returns HTTPException
pass
else:
# process_view returns None - No error on HTTP request from CSRF middleware verification
request.session.set_expiry(86400)
settings.py
CORS_ORIGIN_WHITELIST = [
'http://localhost:8000', #I have changed the localhost as in my local ip. so 8000 is backend and 8080 is frontend port
'http://localhost:8080',
]
# A list of origins that are allowed to make cross-site HTTP requests to your Django application.
CSRF_TRUSTED_ORIGINS = [
'http://localhost:8000',
'http://localhost:8080',
]
CSRF_WHITELIST_ORIGINS = ['localhost:8000','localhost:8080']
# SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies'
# SESSION_COOKIE_NAME='sessionid'
SESSION_COOKIE_PATH='/' #default /
# SESSION_COOKIE_SECURE=True#default False
SESSION_COOKIE_SECURE=False
# SESSION_COOKIE_DOMAIN='localhost:8080' #default None
SESSION_COOKIE_DOMAIN= None
SESSION_COOKIE_HTTPONLY=False # default is True
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
SESSION_COOKIE_AGE = 86400
CSRF_COOKIE_NAME='X-CSRFToken'
CSRF_COOKIE_AGE=86400
CSRF_COOKIE_DOMAIN=None
CSRF_COOKIE_HTTPONLY=False
CSRF_COOKIE_PATH='/'
CSRF_COOKIE_SECURE=False
Я могу получить метод post из POSTMAN, например:
Но при попытке через Front-end я получаю вот такую ошибку
Есть ли какие-либо настройки, которые я должен изменить, чтобы он принимал запрос через FrontEnd
Возможная проблема может заключаться в том, что front end не отправляет cookie "sessionid", который используется для проверки аутентификации в back end. Поэтому бэкэнд перенаправляет на страницу входа в систему, так как не видит, что пользователь аутентифицирован.