Fetch в Django возвращает ошибку 403 с другой учетной записью
Итак, я пытаюсь создать функциональность входа на моем сайте, используя django. Проблема, с которой я столкнулся, заключается в том, что когда я пытаюсь войти в систему, используя свой основной аккаунт, все работает просто отлично, возвращается код 200. Но когда я пытаюсь использовать другую учетную запись, я получаю ошибку 403.
Вот код, где я пытаюсь получить POST запрос
fetch("/login/", {
method: "POST",
headers: {
"X-CSRFToken": getCookie("csrftoken"),
'Content-Type': 'application/json'
},
body: JSON.stringify(data),
credentials: 'include',
redirect: 'follow'
}).then(res => {
console.log("Request complete! response:", res);
//direct user to response url if response is 200
if (res.status == 200) {
window.location.replace(res.url);
}
});
А вот код для входа в систему
def login(request):
if request.method == "POST":
data = json.loads(request.body)
token = data['aud']
try:
# Check if the token is valid from client
idinfo = id_token.verify_oauth2_token(token, requests.Request(), CLIENT_ID)
except:
return HttpResponse("Unallowed")
new_user, created = User.objects.get_or_create(
username=str(idinfo['sub']),
first_name=idinfo['given_name'],
last_name=idinfo['family_name'],
email=idinfo['email']
)
if created:
new_user.save()
return HttpResponseRedirect(reverse('register'))
else:
request.session['username'] = new_user.username
request.session['first_name'] = new_user.first_name
return HttpResponseRedirect(reverse('user-dashboard'))
elif request.method == "GET":
return HttpResponse(render(request, 'login.html'))
Я смотрел на: 403 Forbidden и request.method показывает GET в django. csrf ошибка в django