OAuth 2.1

Lasă alte aplicații să-și autentifice utilizatorii cu un cont Bot-Hosting, ca Sign in with Discord. Construit pe OAuth 2.1 și PKCE, deci funcționează orice client OAuth standard.

Folosește o cheie API ca să-ți controlezi propriul cont. Folosește OAuth când construiești o aplicație care acționează pe conturile altor oameni, ca ei să se autentifice și să-și dea acordul în loc să lipească o cheie. Asistenții AI precum ChatGPT se conectează exact prin acest flux.

Fluxul

  1. 01 Creează o aplicație Înregistrează un nume și un URI de redirecționare în setările pentru dezvoltatori. Primești un client_id public, fără secret.
  2. 02 Trimite utilizatorii la autorizare Redirecționează la /oauth/authorize cu PKCE. Utilizatorul se autentifică și aprobă scope-urile.
  3. 03 Schimbă codul Se întorc cu un cod. Trimite-l prin POST la endpoint-ul de token pentru un access token.
  4. 04 Apelează API-ul în numele lor Trimite token-ul ca Bearer la /api/v1 și reîmprospătează-l în fundal.

Endpoint-uri

Endpoint-uriScop
GET /oauth/authorizeEcranul de consimțământ al utilizatorului, deschis în browser.
POST /api/oauth/tokenSchimbă un cod pentru un token sau reîmprospătează unul.
POST /api/oauth/registerDynamic Client Registration (RFC 7591), opțional.
GET /.well-known/oauth-authorization-serverMetadate de descoperire.
GET /.well-known/oauth-protected-resourceMetadate de resursă, folosite de clienții MCP.

Durata token-urilor

Cod de autorizare 10 min De unică folosință, legat de PKCE.
Access token 7 z Bearer pentru apelurile /api/v1.
Refresh token 30 z Rotit la fiecare utilizare.

Reîmprospătare

Fiecare reîmprospătare returnează un refresh token nou și îl revocă pe cel vechi: suprascrie mereu cel salvat. Dacă o reîmprospătare returnează invalid_grant, trimite utilizatorul înapoi la pasul 1.

Securitate

  • Salvează token-urile pe server, legate de utilizatorul tău. Nu le trimite niciodată în browser sau într-un repository public.
  • Token-urile sunt revocate în clipa în care utilizatorul deconectează aplicația ta.
  • Folosește URI-uri de redirecționare https în producție. http este acceptat pentru teste locale.
  • Token-urile OAuth nu acordă niciodată drepturi de admin, indiferent de scope-urile aprobate.