Как проверить, зарегистрирован ли пользователь Django только с клиентской стороны?

Безопасность здесь не проблема.

Мне нужно отобразить "Вы вошли в систему как имя пользователя" на странице, но не хотите удалять представление из кеша только для этого, поэтому я надеюсь, что смогу сделать это в javascript.

Я не хочу делать что-то критическое в этом процессе, просто проверьте, сохранен ли файл cookie, и если это так, отобразите приветственное сообщение, переименовав ссылку для входа.

Все дело в том, чтобы не попасть в базу данных и не оставить сервер, так как мы получили 120000 пользователей в день на этой отдельной машине, поэтому мне нужно:

  • имя файла cookie django.contrib.auth, чтобы я мог его прочитать;
  • данные, которые я должен прочитать от него, чтобы решить, что пользователь все еще зарегистрирован
  • способ извлечь из него имя пользователя

Если я не могу найти способ сделать это, я вернусь, чтобы создать сервер аутентификации, который устанавливает дополнительный файл cookie при входе в систему и удаляет его при выходе из системы.

Ответ 1

Файл cookie sessionid существует и имеет дату истечения срока действия. Вы можете проверить, действительно ли это так, что предполагает их регистрацию. Вы не можете получить имя пользователя таким образом, хотя вам придется добавить пользовательский файл cookie.

Ответ 2

В вашем шаблоне введите код, как указано ниже.

{% block top %}<script async="async" defer="defer" type="text/javascript" src="{% static 'users/js/geo.js' %}"

{% if user.is_authenticated %} data-authenticated="true" {% endif %}

></script
>{% endblock %}

И проверьте, завершена ли ваша аутентификация кодом:

unsafe_authenticated = 'true' === document.currentScript.dataset.authenticated;