Zum Inhalt springen

OAuth 2.0 und PKCE

Der Authorization-Code-Flow mit PKCE für Apps, die im Namen eines Nutzers handeln möchten.

1 Min. Lesezeit 2 Abschnitte

Beklio Auth unterstützt den Authorization-Code-Flow für registrierte OAuth-Clients. Für öffentliche Clients (Mobile, SPA) ist PKCE verpflichtend, und es wird ausschließlich die Methode S256 akzeptiert.

Ablauf#

  1. Erzeugen Sie einen zufälligen code_verifier und berechnen Sie code_challenge = BASE64URL(SHA256(code_verifier)).
  2. Leiten Sie den Nutzer an https://accounts.beklio.com/oauth/authorize weiter, mit response_type=code, client_id, redirect_uri, scope, state, code_challenge und code_challenge_method=S256.
  3. Nach der Zustimmung wird der Nutzer mit code und state zu Ihrer redirect_uri zurückgeleitet. Prüfen Sie den state-Wert unbedingt.
  4. Tauschen Sie den Code gegen Tokens.
token-exchange.sh
curl -X POST "https://api.beklio.com/oauth/token" \
  -H "Content-Type: application/json" \
  -d '{
    "grant_type": "authorization_code",
    "client_id": "YOUR_CLIENT_ID",
    "code": "AUTHORIZATION_CODE",
    "redirect_uri": "https://app.example.com/callback",
    "code_verifier": "YOUR_CODE_VERIFIER"
  }'

Die Antwort enthält access_token, token_type: "Bearer", expires_in und – sofern der Client dazu berechtigt ist – ein refresh_token.

Regeln#

  • redirect_uri muss exakt mit einer der für den Client registrierten Adressen übereinstimmen.
  • Ein Authorization Code ist einmalig verwendbar und kurzlebig; ein zweiter Austausch mit demselben Code wird abgelehnt.
  • Verwenden Sie zum Erneuern grant_type: "refresh_token".

Fehlt etwas oder ist etwas falsch? Schreiben Sie dem Support-Team; die Angabe des X-Request-Id-Werts aus der Antwort beschleunigt die Lösung.