""" Конфигурация OpenID Connect провайдеров """ import os from typing import Dict, Any # Конфигурация провайдеров OpenID Connect OIDC_PROVIDERS = { "zitadel": { "name": "ZITADEL", "client_id": os.getenv("ZITADEL_CLIENT_ID", ""), "client_secret": os.getenv("ZITADEL_CLIENT_SECRET", ""), "server_metadata_url": os.getenv("ZITADEL_ISSUER", "") + "/.well-known/openid-configuration", "issuer": os.getenv("ZITADEL_ISSUER", ""), "scopes": ["openid", "email", "profile"], "icon": "🔐", "color": "bg-purple-600 hover:bg-purple-700" } } def get_enabled_providers() -> Dict[str, Dict[str, Any]]: """Получить список включённых провайдеров (с настроенными client_id)""" enabled = {} for provider_id, config in OIDC_PROVIDERS.items(): if config.get("client_id") and config.get("issuer"): enabled[provider_id] = config return enabled def get_redirect_uri(provider_id: str, base_url: str = "http://localhost:8000") -> str: """Получить redirect URI для провайдера""" return f"{base_url}/api/auth/oidc/{provider_id}/callback"