Я получаю ошибку Forbidden (CSRF token missing or incorrect.)
при попытке использовать страницу входа.
Сценарий выглядит следующим образом:
- У пользователя открыты две вкладки.
- Обе вкладки являются страницами входа.
- На вкладке 1,пользователь успешно вошел в систему и был перенаправлен на новую страницу, где требуется вход в систему.
- На вкладке 2 пользователь не обновил страницу и все еще находится на странице входа.В бэкэнде Django пользователь уже прошел аутентификацию, но шаблон интерфейса еще не заметил этого.
- На вкладке 2, когда я нажимаю кнопку входа в систему, я получаю
Forbidden (CSRF token missing or incorrect.)
error. - Я убедился, что
csrf_token
находится в форме. - Эта ошибка возникает только тогда, когда я использую две вкладки.
- Я использую AJAX
Почему это происходит?Как я могу это исправить?
Не знаю, поможет ли это, но вот мой views.py
для входа
class Login_View(LoginView):
template_name = 'login.html'
def post(self, request, *args, **kwargs):
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
response_data = {}
if user is not None:
if user.is_active:
login(request, user)
response_data['result'] = 'success'
else:
return HttpResponse("Inactive user.")
else:
response_data['result'] = 'fail'
return HttpResponse(json.dumps(response_data), content_type="application/json")