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

Create a transaction secret

01

The client creates a fresh, high-entropy verifier for each authorization request.

Related RFCs and changes

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

DIAGRAM§ 4.1 ↗
RFC 7636 · § 4.1EXAMPLE
3 / 3
Create a transaction secretThe client creates a fresh, high-entropy verifier for each authorization request. Current state: Keep it local.Create a transaction secretcryptographic random source43–128 characterstransaction verifierencodestays in the client
03
Keep it local

Do not put the verifier in the authorization request.

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
WHAT CHANGED
RFC 7636 public-client protectionRFC 9700 § 2.1.1

The OAuth security BCP requires PKCE for public clients, recommends it for confidential clients, and requires authorization-server support and downgrade protection.

Read the updated RFC section ↗
KEY POINT

The verifier is 43–128 unreserved characters.

  • The verifier is 43–128 unreserved characters.
  • It must be cryptographically random and hard to guess.
  • A recommended construction base64url-encodes 32 random octets.
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
RFC 9700 / CHAPTERS

Chapters

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

RFC status and corrections ↗