OAuth 2.1

Permettez à d’autres applications de connecter leurs utilisateurs avec un compte Bot-Hosting, comme « Se connecter avec Discord ». Basé sur OAuth 2.1 et PKCE : n’importe quel client OAuth standard fonctionne.

Utilisez une clé d’API pour piloter votre propre compte. Utilisez OAuth quand vous créez une application qui agit sur le compte d’autres personnes : elles se connectent et donnent leur accord au lieu de coller une clé. Les assistants IA comme ChatGPT passent par ce même parcours.

Le parcours

  1. 01 Créez une application Enregistrez un nom et une URI de redirection dans vos réglages développeur. Vous obtenez un client_id public, sans secret.
  2. 02 Redirigez vos utilisateurs vers l’autorisation Redirigez vers /oauth/authorize avec PKCE. L’utilisateur se connecte et approuve les scopes.
  3. 03 Échangez le code Il revient avec un code. Envoyez-le en POST à l’endpoint de jeton pour obtenir un jeton d’accès.
  4. 04 Appelez l’API en son nom Envoyez le jeton comme Bearer à /api/v1, et rafraîchissez-le en arrière-plan.

Endpoints

EndpointsRôle
GET /oauth/authorizeÉcran de consentement, ouvert dans le navigateur.
POST /api/oauth/tokenÉchanger un code contre un jeton, ou en rafraîchir un.
POST /api/oauth/registerEnregistrement dynamique du client (RFC 7591), optionnel.
GET /.well-known/oauth-authorization-serverMétadonnées de découverte.
GET /.well-known/oauth-protected-resourceMétadonnées de ressource, utilisées par les clients MCP.

Durée de vie des jetons

Code d’autorisation 10 min À usage unique, lié à PKCE.
Jeton d’accès 7 jours Bearer pour les appels à /api/v1.
Jeton de rafraîchissement 30 jours Renouvelé à chaque utilisation.

Rafraîchissement

Chaque rafraîchissement renvoie un nouveau jeton de rafraîchissement et révoque l’ancien : remplacez toujours celui que vous stockez. Si un rafraîchissement renvoie invalid_grant, faites repasser l’utilisateur par l’étape 1.

Sécurité

  • Stockez les jetons côté serveur, liés à votre utilisateur. Ne les envoyez jamais au navigateur ni dans un dépôt public.
  • Les jetons sont révoqués dès que l’utilisateur déconnecte votre application.
  • Utilisez des URI de redirection en https en production. Le http est accepté pour les tests en local.
  • Les jetons OAuth ne donnent jamais de permissions admin, quels que soient les scopes approuvés.