Manuál
Kompletní průvodce OAuth/OIDC
OAuth 2.0 a OIDC jsou základy moderní autentizace. Pochopte je jednou, použijete všude.
OAuth 2.0 vs OIDC
- OAuth 2.0 — autorizace (přístup k resources)
- OIDC — autentizace (identita uživatele) = vrstva nad OAuth 2.0
Tokeny
- Access Token — krátkodobý, pro API přístup
- Refresh Token — dlouhodobý, pro obnovu access tokenu
- ID Token — JWT s user info (OIDC)
Authorization Code Flow (doporučený)
- User klikne „Login with Google"
- Redirect na Google auth
- User se přihlásí, udělí souhlas
- Google redirectne zpět s authorization code
- Backend vymění code za tokeny
- Backend vrátí session/JWT
PKCE (pro SPA a mobile)
Authorization Code Flow + Proof Key for Code Exchange. Chrání proti code interception útoku. Povinné pro public clients.
JWT
// Header
{ "alg": "RS256", "typ": "JWT" }
// Payload
{ "sub": "user123", "email": "[email protected]", "exp": 1707900000 }
// Signature
RSASHA256(header + payload, private_key)
{ "alg": "RS256", "typ": "JWT" }
// Payload
{ "sub": "user123", "email": "[email protected]", "exp": 1707900000 }
// Signature
RSASHA256(header + payload, private_key)
Best practices
- Access token krátký (5-15 minut)
- Refresh token rotujte
- PKCE vždy pro SPA/mobile
- Validujte tokeny na serveru
- Neukládejte tokeny v localStorage (XSS)
- Použijte httpOnly cookies pro web
Doporučení
Neimplementujte OAuth/OIDC sami. Použijte Auth0, Clerk, Keycloak nebo next-auth.