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
- 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.
- 02 Redirigez vos utilisateurs vers l’autorisation Redirigez vers /oauth/authorize avec PKCE. L’utilisateur se connecte et approuve les scopes.
- 03 Échangez le code Il revient avec un code. Envoyez-le en POST à l’endpoint de jeton pour obtenir un jeton d’accès.
- 04 Appelez l’API en son nom Envoyez le jeton comme Bearer à /api/v1, et rafraîchissez-le en arrière-plan.
Endpoints
| Endpoints | Rô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/register | Enregistrement dynamique du client (RFC 7591), optionnel. |
| GET /.well-known/oauth-authorization-server | Métadonnées de découverte. |
| GET /.well-known/oauth-protected-resource | Mé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.