Django продолжает регистрировать меня на dev-сервере при изменении моей кодовой базы
В моем приложении Django много if request.user.is_authenticated
логики, и как только я изменяю какой-либо код, кроме шаблонов (например, формы, модели, представления и т.д.), я выхожу из системы на сервере разработки, что делает довольно раздражающим постоянный повторный вход во фронтенд, чтобы снова проверить предыдущие изменения кода.
Есть ли способ оставаться вошедшим в систему (суперпользователем) в режиме Debug = True
(или другом)?
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = os.getenv("DEBUG", "False") == "True"
# Add s.th. here to keep me logged in?
Проблема заключается в следующем:
SECRET_KEY = os.getenv("DJANGO_SECRET_KEY", get_random_secret_key())
При каждом перезапуске сервера генерируется новый секретный ключ. Данные аутентификации хранятся в таблице django_sessions
, а данные сессии хэшируются с помощью SECRET_KEY. Таким образом, каждый раз, когда значение SECRET_KEY изменяется, данные текущей сессии становятся недействительными, и вам нужно заново войти в систему.
Решение: Сгенерируйте случайный секретный ключ вручную один раз и сохраните его как переменную окружения в каждом окружении (будь то staging, production или development).
Надеемся, что вы найдете это полезным.