Přeskočit na hlavní obsah

Řešení problémů

Běžné problémy a řešení​

Chyba "invalid_redirect_uri"​

Problém: Autorizační požadavek selže s chybou redirect URI.

Příčiny:

  1. Redirect URI není registrované pro aplikaci
  2. Nesoulad URI (http vs https, koncové lomítko, rozdíly v cestě)
  3. Problémy s URL kódováním

Řešení:

# Ověřte přesnou shodu s registrovaným URI
Registrované: https://myapp.com/callback
Požadavek: https://myapp.com/callback ✓
Požadavek: https://myapp.com/callback/ ✗ (koncové lomítko)
Požadavek: http://myapp.com/callback ✗ (http vs https)

Chyba "invalid_client"​

Problém: Výměna tokenů selže s chybou klienta.

Příčiny:

  1. Špatný client_id
  2. Špatný client_secret
  3. Secret není zahrnut (pro confidential klienty)

Řešení:

  • Ověřte že client_id a client_secret jsou správné
  • Ujistěte se že confidential klienti zahrnují client_secret v token požadavcích
  • Zkontrolujte mezery v přihlašovacích údajích

"invalid_grant" - Kód vypršel​

Problém: Výměna authorization code selže.

Příčiny:

  1. Kód starší než 5 minut
  2. Kód již použit (jednorázový)
  3. Špatné redirect_uri v token požadavku

Řešení:

  • Ujistěte se že výměna kódu proběhne okamžitě po callbacku
  • Nikdy nepoužívejte authorization codes opakovaně
  • Použijte přesně stejné redirect_uri v authorize i token požadavcích

Problém: Tichá autentizace selže.

Příčina: Uživatel dříve neudělil souhlas, ale prompt=none zabraňuje zobrazení obrazovky souhlasu.

Řešení:

// Zpracování chyby consent_required
if (error === 'consent_required') {
// Přesměrovat bez prompt=none pro zobrazení obrazovky souhlasu
window.location.href = authUrl.replace('prompt=none', '');
}

Selhání obnovení tokenu​

Problém: Požadavek na refresh token vrací chybu.

Příčiny:

  1. Refresh token vypršel (14 dní)
  2. Relace byla zrušena (změna hesla, atd.)
  3. Refresh token již použit (rotace)

Řešení:

  • Přesměrujte uživatele k opětovné autentizaci
  • Vždy ukládejte nejnovější refresh token po každém obnovení
Dvoufaktorová autentizace (2FA)

Pokud má uživatel povolené 2FA, probíhá celé ověření na přihlašovací stránce Klubero SSO – vaše aplikace 2FA neimplementuje ani neřeší. Z pohledu integrace je výsledkem buď úspěšné přihlášení (obdržíte autorizační kód), nebo standardní OAuth chyba. Případné potíže s kódem (např. nesynchronizovaný čas v autentikátoru) řeší uživatel přímo na obrazovce SSO, kde může použít i záložní kód.

Problém: Kliknutí na magic link zobrazí chybu.

Příčiny:

  1. Odkaz vypršel (15 minut)
  2. Odkaz již použit
  3. Odkaz zkopírován nesprávně (zkrácen)

Řešení:

  • Požádejte o nový magic link
  • Klikněte na odkaz do 15 minut
  • Zkopírujte kompletní odkaz včetně všech parametrů

Tipy pro ladění​

1. Zkontrolujte Discovery endpoint​

Ověřte že SSO server je dostupný:

curl https://your-sso-domain.com/.well-known/openid-configuration

2. Dekódujte JWT tokeny​

Prohlédněte si obsah tokenu (NESDÍLEJTE tokeny veřejně):

# Extrahujte payload (střední část mezi tečkami)
echo "eyJhbG...payload...signature" | cut -d. -f2 | base64 -d

3. Zkontrolujte expiraci tokenu​

const payload = JSON.parse(atob(token.split('.')[1]));
console.log('Vyprší:', new Date(payload.exp * 1000));
console.log('Vydán:', new Date(payload.iat * 1000));

4. Testujte pomocí cURL​

Testujte požadavky nezávisle na vaší aplikaci:

curl -v -X POST https://your-sso-domain.com/connect/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=YOUR_CLIENT_ID" \
-d "client_secret=YOUR_SECRET"

Získání pomoci​

Pokud stále máte problémy:

  1. Zkontrolujte tuto dokumentaci pro relevantní sekce
  2. Pečlivě přečtěte chybové zprávy - často indikují příčinu
  3. Testujte pomocí cURL pro izolaci problému
  4. Ověřte konfiguraci přes Discovery endpoint /.well-known/openid-configuration
  5. Kontaktujte podporu na support@klubero.cz s:
    • Chybovou zprávou (přesný text)
    • Detaily požadavku (endpoint, parametry - nikdy neposílejte secrets)
    • Kroky k reprodukci
    • Client ID (ne secret)