OAuth 2.1
Lassen Sie andere Apps ihre Nutzer mit einem Bot-Hosting-Konto anmelden, wie bei „Mit Discord anmelden“. Basiert auf OAuth 2.1 und PKCE, daher funktioniert jeder Standard-OAuth-Client.
Verwenden Sie einen API-Schlüssel, um Ihr eigenes Konto zu steuern. Verwenden Sie OAuth, wenn Sie eine App bauen, die im Namen anderer Personen handelt, damit sie sich anmelden und zustimmen, statt einen Schlüssel einzufügen. KI-Assistenten wie ChatGPT verbinden sich genau über diesen Ablauf.
Der Ablauf
- 01 App erstellen Registrieren Sie in Ihren Entwicklereinstellungen einen Namen und eine Redirect-URI. Sie erhalten eine öffentliche client_id, ohne Secret.
- 02 Nutzer zur Autorisierung weiterleiten Leiten Sie mit PKCE auf /oauth/authorize weiter. Der Nutzer meldet sich an und genehmigt die Scopes.
- 03 Code eintauschen Er kommt mit einem Code zurück. Senden Sie ihn per POST an den Token-Endpunkt, um ein Access-Token zu erhalten.
- 04 Die API in seinem Namen aufrufen Senden Sie das Token als Bearer an /api/v1 und erneuern Sie es im Hintergrund.
Endpunkte
| Endpunkte | Zweck |
|---|---|
| GET /oauth/authorize | Zustimmungsbildschirm für Nutzer, im Browser geöffnet. |
| POST /api/oauth/token | Einen Code gegen ein Token tauschen oder eines erneuern. |
| POST /api/oauth/register | Dynamic Client Registration (RFC 7591), optional. |
| GET /.well-known/oauth-authorization-server | Discovery-Metadaten. |
| GET /.well-known/oauth-protected-resource | Ressourcen-Metadaten, von MCP-Clients verwendet. |
Token-Laufzeiten
Autorisierungscode 10 Min. Einmalig verwendbar, an PKCE gebunden.
Access-Token 7 Tage Bearer für Aufrufe von /api/v1.
Refresh-Token 30 Tage Wird bei jeder Verwendung rotiert.
Erneuern
Jede Erneuerung liefert ein neues Refresh-Token und widerruft das alte: Überschreiben Sie immer das gespeicherte. Liefert eine Erneuerung invalid_grant, schicken Sie den Nutzer erneut durch Schritt 1.
Sicherheit
- Speichern Sie Tokens serverseitig, an Ihren Nutzer gebunden. Geben Sie sie niemals an den Browser oder in ein öffentliches Repository.
- Tokens werden widerrufen, sobald der Nutzer Ihre App trennt.
- Verwenden Sie in der Produktion https-Redirect-URIs. http wird für lokale Tests akzeptiert.
- OAuth-Tokens gewähren nie Admin-Rechte, unabhängig von den genehmigten Scopes.