OAuth 2.1

Låt andra appar logga in sina användare med ett Bot-Hosting-konto, som Logga in med Discord. Byggt på OAuth 2.1 och PKCE, så alla standardklienter för OAuth fungerar.

Använd en API-nyckel för att styra ditt eget konto. Använd OAuth när du bygger en app som agerar på andras konton, så att de loggar in och ger sitt medgivande i stället för att klistra in en nyckel. AI-assistenter som ChatGPT ansluter genom exakt det här flödet.

Flödet

  1. 01 Skapa en app Registrera ett namn och en redirect-URI i dina utvecklarinställningar. Du får ett publikt client_id, utan hemlighet.
  2. 02 Skicka användare för godkännande Omdirigera till /oauth/authorize med PKCE. Användaren loggar in och godkänner behörighetsomfången.
  3. 03 Byt koden mot en token De kommer tillbaka med en kod. Skicka den med POST till token-endpointen för att få en åtkomsttoken.
  4. 04 Anropa API:t som dem Skicka token som Bearer till /api/v1 och förnya den i bakgrunden.

Endpoints

EndpointsSyfte
GET /oauth/authorizeSkärm för användarens medgivande, öppnas i webbläsaren.
POST /api/oauth/tokenByt en kod mot en token, eller förnya en.
POST /api/oauth/registerDynamic Client Registration (RFC 7591), valfritt.
GET /.well-known/oauth-authorization-serverMetadata för upptäckt.
GET /.well-known/oauth-protected-resourceResursmetadata, används av MCP-klienter.

Livslängd för tokens

Auktoriseringskod 10 min Engångsbruk, bunden till PKCE.
Åtkomsttoken 7 dagar Bearer för anrop till /api/v1.
Refresh-token 30 dagar Roteras vid varje användning.

Förnyelse

Varje förnyelse ger en ny refresh-token och återkallar den gamla: skriv alltid över den sparade. Om en förnyelse returnerar invalid_grant, skicka användaren tillbaka till steg 1.

Säkerhet

  • Spara tokens på serversidan, kopplade till din användare. Skicka dem aldrig till webbläsaren eller ett publikt repository.
  • Tokens återkallas i samma stund som användaren kopplar bort din app.
  • Använd redirect-URI:er med https i produktion. http accepteras för lokal testning.
  • OAuth-tokens ger aldrig administratörsbehörighet, oavsett vilka behörighetsomfång som godkänns.