fix: add logging to auth_callback for better debugging of OIDC token exchange
This commit is contained in:
@@ -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}")
|
||||
|
||||
Reference in New Issue
Block a user