From 8e395a4966b95116953439dd3cb780d17500f8ba Mon Sep 17 00:00:00 2001 From: Mabe Date: Sun, 21 Jun 2026 17:08:00 +0200 Subject: [PATCH] fix: add logging to auth_callback for better debugging of OIDC token exchange --- backend/app/main.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/backend/app/main.py b/backend/app/main.py index a37d229..3ce90e5 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -1,3 +1,4 @@ +import logging import os from typing import AsyncGenerator @@ -20,6 +21,9 @@ app = FastAPI( version="0.1.0", ) +logging.basicConfig(level=logging.DEBUG) +logger = logging.getLogger(__name__) + app.add_middleware( CORSMiddleware, allow_origins=["*"], @@ -88,14 +92,25 @@ async def auth_callback(payload: AuthCallbackRequest): data["client_id"] = settings.oidc_client_id async with httpx.AsyncClient(timeout=15.0) as client: + logger.debug("Token endpoint: %s", token_endpoint) + logger.debug("Token request data: %s", data) + logger.debug("Using auth: %s", "basic" if auth is not None else "none") + response = await client.post(token_endpoint, data=data, headers={"Accept": "application/json"}, auth=auth) + logger.debug("Token response status: %s", response.status_code) + logger.debug("Token response headers: %s", response.headers) + logger.debug("Token response text: %s", response.text) # Some providers only accept client authentication via POST body if response.status_code != 200 and auth is not None: data_with_secret = dict(data) data_with_secret["client_id"] = settings.oidc_client_id data_with_secret["client_secret"] = settings.oidc_client_secret + logger.debug("Retrying with client_secret_post: %s", data_with_secret) response = await client.post(token_endpoint, data=data_with_secret, headers={"Accept": "application/json"}) + logger.debug("Token response status (fallback): %s", response.status_code) + logger.debug("Token response headers (fallback): %s", response.headers) + logger.debug("Token response text (fallback): %s", response.text) if response.status_code != 200: raise HTTPException(status_code=400, detail=f"OIDC token exchange failed: {response.text}")