fix: использование локального адреса для внутренних API запросов (избежание SSL ошибок)

This commit is contained in:
admin i 2025-12-05 10:28:23 +03:00
parent ebaf02362d
commit 32b7aba4dd
2 changed files with 8 additions and 10 deletions

View File

@ -20,17 +20,12 @@ class ApiConfig:
def load_config(request=None) -> ApiConfig:
"""
Загружает конфигурацию API.
Если передан request, base_url формируется динамически на основе домена запроса.
Иначе используется настройка API_BASE_URL из settings.
Для внутренних запросов (API -> API) используем локальный адрес,
чтобы избежать проблем с SSL сертификатами.
"""
if request:
# Динамическое формирование base_url на основе текущего домена
scheme = 'https' if request.is_secure() else 'http'
host = request.get_host()
base = f"{scheme}://{host}/api"
else:
# Fallback на статическую настройку (для фоновых задач, команд и т.д.)
base = getattr(settings, "API_BASE_URL", "http://localhost:9000/api")
# Всегда используем локальный адрес для внутренних запросов API к самому себе
# Это избегает проблем с SSL и быстрее работает
base = getattr(settings, "API_BASE_URL", "http://127.0.0.1:8000/api")
return ApiConfig(
base_url=base.rstrip("/"),

View File

@ -146,6 +146,9 @@ DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
AUTH_USER_MODEL = "employees.Employee"
API_LOGIN_URL_NAME = "auth_front:login"
# Внутренний URL для API клиента (для запросов view -> API внутри сервера)
# Используем локальный адрес для избежания проблем с SSL
API_BASE_URL = os.getenv("API_BASE_URL", "http://127.0.0.1:8000/api")
LOGIN_URL = "auth_front:login"
LOGIN_REDIRECT_URL = "/"
REGISTRATION_AUTO_LOGIN = True