Fix FastAPI token grant_type validation error when missing and form was sent by client.

This commit is contained in:
Leo Vasanko
2026-02-17 00:00:51 +00:00
parent fee833b908
commit 21d1e123f5
+8 -1
View File
@@ -99,7 +99,7 @@ def _parse_client_credentials(
@app.post("/token")
async def token(
request: Request,
grant_type: str = Body(..., embed=False),
grant_type: str | None = Body(None, embed=False),
code: str | None = Body(None, embed=False),
redirect_uri: str | None = Body(None, embed=False),
client_id: str | None = Body(None, embed=False),
@@ -127,6 +127,13 @@ async def token(
code_verifier = form.get("code_verifier", code_verifier)
refresh_token = form.get("refresh_token", refresh_token)
# Validate grant_type is present
if not grant_type:
return JSONResponse(
{"error": "invalid_request", "error_description": "Missing grant_type"},
status_code=400,
)
# Get client credentials (required for all grant types)
client_id, client_secret = _parse_client_credentials(
request, client_id, client_secret