Přeskočit na hlavní obsah

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í​