Fix: добавлен CSRF_TRUSTED_ORIGINS для входа за Nginx (403)

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-02-25 15:10:42 +00:00
parent 519806058f
commit c82a69c3ce
3 changed files with 22 additions and 0 deletions

View File

@@ -14,3 +14,6 @@ DB_PORT=5432
DB_NAME=watersurf_erp
DB_USER=watersurf_erp
DB_PASSWORD=CHANGE_ME_POSTGRES_PASSWORD
# Опционально: дополнительные доверенные источники для CSRF (через запятую)
# CSRF_TRUSTED_ORIGINS=https://erp.gen7x.ru,https://other.example.com

View File

@@ -1,5 +1,15 @@
# История изменений ERP WaterSurf
## 2025-02-25 15:25 UTC Исправление 403 CSRF при входе
**Проблема**: При первой авторизации под администратором по https://erp.gen7x.ru возникала ошибка 403 (ошибка проверки CSRF, запрос отклонён).
**Решение**: Добавлена настройка `CSRF_TRUSTED_ORIGINS` в `config/settings.py`: указаны `https://erp.gen7x.ru`, а также localhost/127.0.0.1 для локальной отладки. При работе за Nginx Django проверяет заголовок Origin/Referer; без доверенного источника запросы с формы логина отклонялись.
**Изменения**: `app/config/settings.py` — список CSRF_TRUSTED_ORIGINS; опциональная переменная `CSRF_TRUSTED_ORIGINS` в `.env.example`.
---
## 2025-02-25 15:10 UTC Администратор и SSH для Git
**Проблема**: Требовалось создать первого администратора системы и настроить SSH для самостоятельного push в Gitea.

View File

@@ -10,6 +10,15 @@ SECRET_KEY = os.environ.get("SECRET_KEY", "django-insecure-change-me")
DEBUG = os.environ.get("DEBUG", "false").lower() in ("1", "true", "yes")
ALLOWED_HOSTS = os.environ.get("ALLOWED_HOSTS", "localhost,127.0.0.1").split(",")
# За прокси (Nginx): иначе при отправке формы логина — 403 CSRF
CSRF_TRUSTED_ORIGINS = [
"https://erp.gen7x.ru",
"http://localhost:8010",
"http://127.0.0.1:8010",
]
if os.environ.get("CSRF_TRUSTED_ORIGINS"):
CSRF_TRUSTED_ORIGINS = os.environ.get("CSRF_TRUSTED_ORIGINS").split(",")
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",