OAuth 2.1

Laat andere apps hun gebruikers inloggen met een Bot-Hosting-account, zoals Inloggen met Discord. Gebouwd op OAuth 2.1 en PKCE, dus elke standaard OAuth-client werkt.

Gebruik een API-sleutel om je eigen account te besturen. Gebruik OAuth als je een app bouwt die namens andere mensen werkt, zodat ze inloggen en toestemming geven in plaats van een sleutel te plakken. AI-assistenten zoals ChatGPT verbinden via precies deze flow.

De flow

  1. 01 Maak een app Registreer een naam en een redirect-URI in je developerinstellingen. Je krijgt een openbare client_id, zonder secret.
  2. 02 Stuur gebruikers om toestemming te geven Verwijs door naar /oauth/authorize met PKCE. De gebruiker logt in en keurt de scopes goed.
  3. 03 Wissel de code in voor een token Ze komen terug met een code. POST die naar het token-endpoint voor een access token.
  4. 04 Roep de API aan namens hen Stuur het token als Bearer naar /api/v1 en vernieuw het op de achtergrond.

Endpoints

EndpointsDoel
GET /oauth/authorizeToestemmingsscherm voor de gebruiker, geopend in de browser.
POST /api/oauth/tokenWissel een code in voor een token, of vernieuw er een.
POST /api/oauth/registerDynamic Client Registration (RFC 7591), optioneel.
GET /.well-known/oauth-authorization-serverDiscovery-metadata.
GET /.well-known/oauth-protected-resourceResourcemetadata, gebruikt door MCP-clients.

Levensduur van tokens

Autorisatiecode 10 min Eenmalig te gebruiken, gebonden aan PKCE.
Access token 7 dagen Bearer voor aanroepen naar /api/v1.
Refresh token 30 dagen Bij elk gebruik geroteerd.

Vernieuwen

Elke vernieuwing geeft een nieuw refresh token en trekt het oude in: overschrijf altijd het opgeslagen token. Als een vernieuwing invalid_grant teruggeeft, stuur de gebruiker dan terug naar stap 1.

Beveiliging

  • Bewaar tokens aan de serverkant, gekoppeld aan je gebruiker. Stuur ze nooit naar de browser en publiceer ze nooit in een openbare repository.
  • Tokens worden ingetrokken zodra de gebruiker je app loskoppelt.
  • Gebruik https-redirect-URI's in productie. http is toegestaan voor lokaal testen.
  • OAuth-tokens geven nooit adminrechten, welke scopes ook zijn goedgekeurd.