Files
Proxmox-VPS-Panel/backend/app/routers/console.py
T
2026-07-25 02:24:24 +03:00

25 lines
1.2 KiB
Python

# Определяем способ аутентификации.
# Cookie-вариант приоритетнее — Proxmox 8.x/9.x часто отказывает API-токену
# на WebSocket-эндпоинте vncwebsocket. Но если cookie-аутентификация не
# задана — используем API-токен.
use_cookie = bool(settings.pve_username and settings.pve_password)
headers: dict = {}
csrf_token: Optional[str] = None
auth = None
if use_cookie:
auth = await _get_pve_auth_cookie()
if auth:
cookie_header, csrf_token = auth
headers["Cookie"] = cookie_header
if csrf_token:
headers["CSRFPreventionToken"] = csrf_token
auth_kind = "cookie"
else:
headers["Authorization"] = (
f"PVEAPIToken={settings.pve_token_name}={settings.pve_token_value}"
)
auth_kind = "api-token"
logger.warning(
"console_ws: cookie-аутентификация отключена или не настроена, "
"используем API-токен. Proxmox 8.x/9.x может его не принимать."
)