Specification: RFC 6749
OAuth 2.0 is the industry-standard protocol for authorization. It enables applications to obtain limited access to user accounts on an HTTP service.
Grant Types
- Authorization Code Grant (with mandatory PKCE per OAuth 2.1)
- Client Credentials Grant
- Refresh Token Grant
- Device Authorization Grant (RFC 8628) — not yet implemented
Removed by design (intentionally not supported per OAuth 2.1):
-
Implicit Grant— removed in OAuth 2.1 -
Resource Owner Password Credentials Grant— removed in OAuth 2.1
PKCE (Proof Key for Code Exchange)
-
code_challengerequired on every authorization request -
code_verifierrequired on every token exchange -
S256challenge method supported -
plainchallenge method supported (not recommended, allowed by spec)
Refresh Tokens
- Refresh token rotation — a new refresh token is issued on every use
- Old refresh token invalidated immediately upon use
- Full session revocation on refresh token reuse (replay detection)
Bearer Token Usage
- Access tokens accepted via
Authorization: Bearerheader only - Token passing via URL query parameters is rejected
- Short-lived access tokens (configurable TTL)
Client Authentication
-
client_secret_basic—Authorization: Basicheader -
client_secret_post— client credentials in request body -
private_key_jwt— not yet implemented -
client_secret_jwt— not yet implemented
Endpoints
-
POST /authorize— Authorization endpoint -
POST /token— Token endpoint -
POST /revoke— Token Revocation (RFC 7009) -
POST /introspect— Token Introspection (RFC 7662) -
GET /.well-known/oauth-authorization-server— Server Metadata (RFC 8414) — not yet implemented
Related Specifications
- OAuth 2.1 (Draft) — Consolidation of best practices
- RFC 7636 — PKCE
- RFC 7009 — Token Revocation
- RFC 7662 — Token Introspection