Przejdź do treści
Sursa Developers

POST/oauth/token

Wydawanie tokenu OAuth 2.0

oauth_token

Punkt końcowy wydawania tokenów OAuth 2.0 (RFC 6749, sekcja 3.2). grant_type: authorization_code wymienia jednorazowy kod na parę tokenów i wymaga code_verifier (PKCE S256); refresh_token wydaje nową parę za token odświeżania i unieważnia poprzedni token odświeżania (rotacja), a ponowne użycie unieważnionego tokenu unieważnia cały łańcuch; client_credentials wydaje token w imieniu organizacji, tylko dla aplikacji confidential, bez tokenu odświeżania. Klient confidential uwierzytelnia się nagłówkiem Authorization: Basic lub polami client_id i client_secret; klient publiczny wysyła tylko client_id. Token dostępu jest ważny przez 1 godzinę, token odświeżania – przez 90 dni. Odpowiedzi i błędy są zgodne z RFC 6749, sekcja 5, z Cache-Control: no-store. Dodano w wersji 1.62.0.

Uwierzytelnianie

Dane uwierzytelniające nie są potrzebne.

Treść żądania

application/x-www-form-urlencoded

Obiekt: OAuthTokenRequest

  • grant_typestringwymagane

    Dozwolone wartości: authorization_coderefresh_tokenclient_credentials

  • codestring

    Kod autoryzacji (authorization_code).

  • redirect_uristring

    Ten sam adres URI przekierowania co w żądaniu autoryzacji (authorization_code).

  • code_verifierstring

    Pierwotna wartość PKCE, od 43 do 128 znaków (authorization_code).

  • refresh_tokenstring

    Token odświeżania (refresh_token).

  • scopestring

    Zakresy rozdzielone spacjami, tylko zawężające (refresh_token, client_credentials).

  • client_idstring

    ID aplikacji, gdy sekret nie jest przekazywany w nagłówku Authorization: Basic.

  • client_secretstring

    Sekret klienta aplikacji confidential, gdy nie jest przekazywany w nagłówku Authorization: Basic.

Odpowiedzi

200Tokeny zostały wydane.

Nagłówki odpowiedzi

  • RateLimit-Policy

    Obowiązujące limity w formacie projektu IETF draft-ietf-httpapi-ratelimit-headers: elementy rozdzielone przecinkami "<name>";q=<quota>;w=<window in seconds>. key to częstotliwość żądań klucza API (przydział to wielkość chwilowego szczytu (burst), okno to czas jego pełnego odnowienia; dla sesji jest to user, bez danych uwierzytelniających ip); minute, day i month to przydziały organizacji na minutę, dzień i miesiąc kalendarzowy w UTC.

  • RateLimit

    Co pozostało z każdego limitu w RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Limit najbardziej restrykcyjnej pozycji w RateLimit-Policy (tej, w której zostało najmniej żądań).

  • X-RateLimit-Remaining

    Liczba żądań pozostałych w ramach najbardziej restrykcyjnego limitu.

  • X-RateLimit-Reset

    Liczba sekund do odnowienia najbardziej restrykcyjnego limitu.

application/json

Obiekt: OAuthTokenResponse

  • access_tokenstringwymagane

    Token dostępu (kbat_…) do nagłówka Authorization: Bearer.

  • token_typestringwymagane

    Dozwolone wartości: Bearer

  • expires_inintegerwymagane

    Czas życia tokenu dostępu w sekundach.

  • refresh_tokenstring

    Token odświeżania (kbrt_…); brak dla client credentials.

  • scopestringwymagane

    Zakresy tokenu rozdzielone spacjami.

400Błąd zgodny z definicją w RFC 6749, sekcja 5.2.

Nagłówki odpowiedzi

  • RateLimit-Policy

    Obowiązujące limity w formacie projektu IETF draft-ietf-httpapi-ratelimit-headers: elementy rozdzielone przecinkami "<name>";q=<quota>;w=<window in seconds>. key to częstotliwość żądań klucza API (przydział to wielkość chwilowego szczytu (burst), okno to czas jego pełnego odnowienia; dla sesji jest to user, bez danych uwierzytelniających ip); minute, day i month to przydziały organizacji na minutę, dzień i miesiąc kalendarzowy w UTC.

  • RateLimit

    Co pozostało z każdego limitu w RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Limit najbardziej restrykcyjnej pozycji w RateLimit-Policy (tej, w której zostało najmniej żądań).

  • X-RateLimit-Remaining

    Liczba żądań pozostałych w ramach najbardziej restrykcyjnego limitu.

  • X-RateLimit-Reset

    Liczba sekund do odnowienia najbardziej restrykcyjnego limitu.

401Nieprawidłowe dane uwierzytelniające klienta (`invalid_client`).

Nagłówki odpowiedzi

  • RateLimit-Policy

    Obowiązujące limity w formacie projektu IETF draft-ietf-httpapi-ratelimit-headers: elementy rozdzielone przecinkami "<name>";q=<quota>;w=<window in seconds>. key to częstotliwość żądań klucza API (przydział to wielkość chwilowego szczytu (burst), okno to czas jego pełnego odnowienia; dla sesji jest to user, bez danych uwierzytelniających ip); minute, day i month to przydziały organizacji na minutę, dzień i miesiąc kalendarzowy w UTC.

  • RateLimit

    Co pozostało z każdego limitu w RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Limit najbardziej restrykcyjnej pozycji w RateLimit-Policy (tej, w której zostało najmniej żądań).

  • X-RateLimit-Remaining

    Liczba żądań pozostałych w ramach najbardziej restrykcyjnego limitu.

  • X-RateLimit-Reset

    Liczba sekund do odnowienia najbardziej restrykcyjnego limitu.

Bezpieczne ponawianie

Wysyłaj nagłówek Idempotency-Key (na przykład UUID) z każdym żądaniem POST i PATCH. Ponowienie z tym samym kluczem w ciągu 24 godzin zwraca zapisaną odpowiedź, zamiast ponownie wykonywać żądanie.

Limity częstotliwości

Odpowiedzi zawierają nagłówki RateLimit i RateLimit-Policy oraz starsze X-RateLimit-Limit, X-RateLimit-Remaining i X-RateLimit-Reset. Odpowiedź 429 ma nagłówek Retry-After w sekundach: odczekaj i ponów żądanie.

← oauth · Dokumentacja API