Django CSRF-токен в шаблоне устарел после входа в систему
Django позволяет добавить CSRF-токен на веб-страницу, отобразив его в шаблоне с помощью {% csrf_token %}
Теперь вот ситуация.
У меня открыты две вкладки с публичными страницами моего сайта, которые не требуют входа, и я просматриваю их как анонимный пользователь. Обе вкладки, конечно же, используют один и тот же CSRF токен. Теперь я выполняю вход пользователя, используя вкладку 1. Это вызывает ротацию CSRF-токена и обновляет куки новым токеном.
Это означает, что CSRF-токен, переданный на веб-страницу вкладки 2, теперь устарел. Поэтому любые дальнейшие POST или AJAX запросы, отправленные с вкладки 2, будут возвращать 403, заставляя мой сайт на вкладке 2 вести себя некорректно, пока я не перезагружу страницу.
Значит ли это, что для того, чтобы избежать этой проблемы, я никогда не должен полагаться на {% csrf_token %} и всегда извлекать токен csrf из cookie перед отправкой любых ajax-запросов?
Это звучит немного странно, возможно, я что-то упускаю. Я ожидал, что {% csrf_token %} будет надежным источником токена csrf, но похоже, что это не так.