Aller au contenu

OAuth 2.0 et PKCE

Le flux authorization code + PKCE pour les applications qui souhaitent agir au nom d’un utilisateur.

1 min de lecture 2 sections

Beklio Auth prend en charge le flux authorization code pour les clients OAuth enregistrés. PKCE est obligatoire pour les clients publics (mobile, SPA) et seule la méthode S256 est acceptée.

Déroulement#

  1. Générez un code_verifier aléatoire et calculez code_challenge = BASE64URL(SHA256(code_verifier)).
  2. Redirigez l’utilisateur vers https://accounts.beklio.com/oauth/authorize avec response_type=code, client_id, redirect_uri, scope, state, code_challenge et code_challenge_method=S256.
  3. Une fois que l’utilisateur a donné son accord, il est renvoyé vers votre redirect_uri avec code et state. Vérifiez impérativement la valeur de state.
  4. Échangez le code contre des jetons.
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"
  }'

La réponse contient access_token, token_type: "Bearer", expires_in et, si le client y est autorisé, un refresh_token.

Règles#

  • redirect_uri doit correspondre exactement à l’une des adresses enregistrées pour le client.
  • Un authorization code est à usage unique et de courte durée ; un second échange avec le même code est refusé.
  • Utilisez grant_type: "refresh_token" pour le renouvellement.

Il manque quelque chose ou il y a une erreur ? Écrivez à l’équipe d’assistance, en joignant la valeur X-Request-Id de la réponse, vous accélérerez la résolution.