Metadata signals
{
"response_types_supported": ["code"],
"grant_types_supported": ["authorization_code", "refresh_token"],
"code_challenge_methods_supported": ["S256"]
}
Verifier and challenge
The client creates a high-entropy verifier, derives a SHA-256 challenge, sends the challenge during authorization, and presents the verifier at the token endpoint. The authorization server must bind the two parts of the same transaction.
Frequent integration errors
S256is enforced but absent from discovery metadata.- The server advertises
plainonly. - The token endpoint receives a verifier associated with a different authorization request.
- A proxy or session layer loses the stored challenge.
- The redirect URI differs between the authorization and token requests.
Metadata is not enforcement. Advertising S256 is necessary for interoperable discovery, but only a live negative test proves that missing or incorrect verifiers are rejected.