OAuth 2.1
La andre apper logge inn brukerne sine med en Bot-Hosting-konto, som Logg inn med Discord. Bygget på OAuth 2.1 og PKCE, så enhver standard OAuth-klient fungerer.
Bruk en API-nøkkel for å styre din egen konto. Bruk OAuth når du bygger en app som handler på andres kontoer, slik at de logger inn og samtykker i stedet for å lime inn en nøkkel. AI-assistenter som ChatGPT kobler til gjennom akkurat denne flyten.
Flyten
- 01 Opprett en app Registrer et navn og en redirect-URI i utviklerinnstillingene dine. Du får en offentlig client_id, uten hemmelighet.
- 02 Send brukerne til autorisering Omdiriger til /oauth/authorize med PKCE. Brukeren logger inn og godkjenner tilgangsomfangene.
- 03 Bytt inn koden De kommer tilbake med en kode. Send den med POST til token-endepunktet for å få et access token.
- 04 Kall API-et som dem Send tokenet som Bearer til /api/v1, og forny det i bakgrunnen.
Endepunkter
| Endepunkter | Formål |
|---|---|
| GET /oauth/authorize | Samtykkeskjerm for brukeren, åpnet i nettleseren. |
| POST /api/oauth/token | Bytt en kode mot et token, eller forny et. |
| POST /api/oauth/register | Dynamic Client Registration (RFC 7591), valgfritt. |
| GET /.well-known/oauth-authorization-server | Metadata for oppdagelse. |
| GET /.well-known/oauth-protected-resource | Ressursmetadata, brukt av MCP-klienter. |
Levetid for tokens
Autorisasjonskode 10 min Engangsbruk, bundet til PKCE.
Access token 7 dager Bearer for kall til /api/v1.
Refresh token 30 dager Roteres ved hver bruk.
Fornyelse
Hver fornyelse gir et nytt refresh token og tilbakekaller det gamle: overskriv alltid det lagrede. Hvis en fornyelse gir invalid_grant, send brukeren tilbake gjennom steg 1.
Sikkerhet
- Lagre tokens på serversiden, knyttet til brukeren din. Send dem aldri til nettleseren eller et offentlig repository.
- Tokens tilbakekalles i det øyeblikket brukeren kobler fra appen din.
- Bruk redirect-URI-er med https i produksjon. http godtas for lokal testing.
- OAuth-tokens gir aldri admin-tilgang, uansett hvilke tilgangsomfang som godkjennes.