Skip to main content

Výběr správného flow

Rozhodovací strom

                    ┌─────────────────────────────┐
│ Jaký typ aplikace máte? │
└─────────────────────────────┘

┌─────────────────────┼─────────────────────┐
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Serverová web │ │ SPA / Mobilní │ │ Backend služba │
│ aplikace │ │ aplikace │ │ (bez uživatele) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Authorization │ │ Authorization │ │ Client │
│ Code Flow │ │ Code + PKCE │ │ Credentials │
└─────────────────┘ └─────────────────┘ └─────────────────┘

Porovnání flow

VlastnostAuth CodeAuth Code + PKCEClient Credentials
Autentizace uživateleAnoAnoNe
Refresh tokenyAnoAnoNe
Vyžaduje client secretAnoNeAno
Vhodné pro frontendNeAnoNe
Souhlas uživateleAnoAnoNe
Vrací ID tokenAnoAnoNe

Doporučení podle typu aplikace

Typ aplikaceDoporučené flowPoznámky
Tradiční webová aplikace (PHP, Rails, Django, ASP.NET)Authorization CodeUkládejte tokeny na serveru
Single Page Application (React, Vue, Angular)Authorization Code + PKCEBackend není vyžadován
Mobilní aplikace (iOS, Android)Authorization Code + PKCEPoužijte custom URL scheme
Nativní desktopová aplikaceAuthorization Code + PKCEPoužijte localhost redirect
Backend služba / Cron JobClient CredentialsBez kontextu uživatele
Komunikace mezi mikroslužbamiClient CredentialsPřístup servisního účtu

Rychlé shrnutí