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
- 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.
- 02 Trimite utilizatorii la autorizare Redirecționează la /oauth/authorize cu PKCE. Utilizatorul se autentifică și aprobă scope-urile.
- 03 Schimbă codul Se întorc cu un cod. Trimite-l prin POST la endpoint-ul de token pentru un access token.
- 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-uri | Scop |
|---|---|
| GET /oauth/authorize | Ecranul de consimțământ al utilizatorului, deschis în browser. |
| POST /api/oauth/token | Schimbă un cod pentru un token sau reîmprospătează unul. |
| POST /api/oauth/register | Dynamic Client Registration (RFC 7591), opțional. |
| GET /.well-known/oauth-authorization-server | Metadate de descoperire. |
| GET /.well-known/oauth-protected-resource | Metadate 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.