Visual RFC.
ALL RFCs / RFC 7636
Read the RFC ↗
RFC 7636 / MECHANISMS

A stolen code fails the proof

04

The token endpoint recomputes the challenge and compares it with the one bound to the code.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

DIAGRAM§ 4.6 ↗
RFC 7636 · § 4.6EXAMPLE
3 / 3
A stolen code fails the proofThe token endpoint recomputes the challenge and compares it with the one bound to the code. Current state: Reject.A stolen code fails the proofcode thiefstored challenge Hwrong verifier → H′H′ ≠ Hinvalid_grantNo token issued
03
Reject

The server returns invalid_grant and issues no token for the failed exchange.

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
KEY POINT

A mismatched verifier produces invalid_grant.

  • A mismatched verifier produces invalid_grant.
  • A code alone does not satisfy PKCE.
  • Other authorization-code validation rules still apply.
DETAILS

The illustration is schematic. Example values are illustrative; profiles and later security guidance can add requirements.

Read the RFC section ↗

Diagrams simplify the RFC. Read the linked sections for complete requirements.

Privacy
All chapters in this RFC
  1. Create a transaction secret
  2. Derive the S256 challenge
  3. The code remembers its challenge
  4. A stolen code fails the proof
  5. Do not downgrade the method

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗