OAuth 2.1

Pozwól innym aplikacjom logować użytkowników kontem Bot-Hosting, tak jak Zaloguj się przez Discord. Oparte na OAuth 2.1 i PKCE, więc działa każdy standardowy klient OAuth.

Klucza API używaj do sterowania własnym kontem. OAuth wybierz, gdy budujesz aplikację działającą na kontach innych osób, żeby logowały się i wyrażały zgodę zamiast wklejać klucz. Asystenci AI, jak ChatGPT, łączą się właśnie tym przepływem.

Przebieg

  1. 01 Utwórz aplikację Zarejestruj nazwę i redirect URI w ustawieniach dewelopera. Dostajesz publiczny client_id, bez sekretu.
  2. 02 Wyślij użytkowników do autoryzacji Przekieruj na /oauth/authorize z PKCE. Użytkownik loguje się i zatwierdza zakresy.
  3. 03 Wymień kod Wracają z kodem. Wyślij go POST-em do endpointu tokenów, aby dostać token dostępu.
  4. 04 Wywołuj API w ich imieniu Wysyłaj token jako Bearer do /api/v1 i odświeżaj go w tle.

Endpointy

EndpointyCel
GET /oauth/authorizeEkran zgody użytkownika, otwierany w przeglądarce.
POST /api/oauth/tokenWymiana kodu na token albo odświeżenie tokenu.
POST /api/oauth/registerDynamic Client Registration (RFC 7591), opcjonalnie.
GET /.well-known/oauth-authorization-serverMetadane wykrywania.
GET /.well-known/oauth-protected-resourceMetadane zasobu, używane przez klientów MCP.

Czas życia tokenów

Kod autoryzacji 10 min Jednorazowy, powiązany z PKCE.
Token dostępu 7 dni Bearer dla wywołań /api/v1.
Token odświeżania 30 dni Rotowany przy każdym użyciu.

Odświeżanie

Każde odświeżenie zwraca nowy token odświeżania i unieważnia stary: zawsze nadpisuj zapisany. Jeśli odświeżenie zwróci invalid_grant, odeślij użytkownika do kroku 1.

Bezpieczeństwo

  • Przechowuj tokeny po stronie serwera, powiązane z użytkownikiem. Nigdy nie wysyłaj ich do przeglądarki ani do publicznego repozytorium.
  • Tokeny są unieważniane w chwili, gdy użytkownik odłączy twoją aplikację.
  • W produkcji używaj redirect URI z https. http jest dopuszczone do testów lokalnych.
  • Tokeny OAuth nigdy nie dają uprawnień administratora, niezależnie od zatwierdzonych zakresów.