OAuth 2.1
Nechte jiné aplikace přihlašovat uživatele účtem Bot-Hosting, podobně jako přihlášení přes Discord. Postaveno na OAuth 2.1 a PKCE, takže funguje s každým standardním klientem OAuth.
Klíč API použijte k ovládání vlastního účtu. OAuth použijte, když vytváříte aplikaci, která jedná na účtech jiných lidí, aby se přihlásili a dali souhlas, místo aby vkládali klíč. Právě tímto postupem se připojují i AI asistenti jako ChatGPT.
Postup
- 01 Vytvořte aplikaci Zadejte název a redirect URI v nastavení pro vývojáře. Získáte veřejné client_id, bez tajného klíče.
- 02 Pošlete uživatele k autorizaci Přesměrujte na /oauth/authorize s PKCE. Uživatel se přihlásí a schválí oprávnění.
- 03 Vyměňte kód Vrátí se s kódem. Odešlete ho metodou POST na koncový bod tokenu a získáte přístupový token.
- 04 Volejte API jejich jménem Pošlete token jako Bearer na /api/v1 a obnovujte ho na pozadí.
Koncové body
| Koncové body | Účel |
|---|---|
| GET /oauth/authorize | Obrazovka souhlasu uživatele, otevřená v prohlížeči. |
| POST /api/oauth/token | Výměna kódu za token nebo jeho obnovení. |
| POST /api/oauth/register | Dynamic Client Registration (RFC 7591), volitelné. |
| GET /.well-known/oauth-authorization-server | Metadata pro zjišťování. |
| GET /.well-known/oauth-protected-resource | Metadata prostředku, používaná klienty MCP. |
Platnost tokenů
Autorizační kód 10 min Jednorázový, svázaný s PKCE.
Přístupový token 7 d Bearer pro volání /api/v1.
Obnovovací token 30 d Při každém použití se vymění.
Obnovení
Každé obnovení vrátí nový obnovovací token a starý zneplatní: uložený token vždy přepište. Pokud obnovení vrátí invalid_grant, pošlete uživatele znovu od kroku 1.
Zabezpečení
- Tokeny ukládejte na straně serveru a svažte je s uživatelem. Nikdy je neposílejte do prohlížeče ani do veřejného repozitáře.
- Tokeny se zneplatní ve chvíli, kdy uživatel vaši aplikaci odpojí.
- V produkci používejte redirect URI s https. Pro místní testování se přijímá i http.
- Tokeny OAuth nikdy nedávají práva správce, bez ohledu na schválená oprávnění.