Langsung ke konten
Sursa Developers

POST/oauth/token

Terbitkan token OAuth 2.0

oauth_token

Endpoint token OAuth 2.0 (RFC 6749, bagian 3.2). grant_type: authorization_code menukar kode sekali pakai dengan sepasang token dan memerlukan code_verifier (PKCE S256); refresh_token menerbitkan pasangan baru untuk token refresh dan membatalkan token refresh sebelumnya (rotasi), dan memakai ulang token yang sudah dibatalkan akan mencabut seluruh rantainya; client_credentials menerbitkan token atas nama organisasi, hanya untuk aplikasi confidential, tanpa token refresh. Klien confidential melakukan autentikasi dengan header Authorization: Basic atau dengan field client_id dan client_secret; klien publik hanya mengirim client_id. Token akses berlaku selama 1 jam, token refresh selama 90 hari. Respons dan error mengikuti RFC 6749, bagian 5, dengan Cache-Control: no-store. Ditambahkan di 1.62.0.

Autentikasi

Tidak memerlukan kredensial.

Isi permintaan

application/x-www-form-urlencoded

Objek: OAuthTokenRequest

  • grant_typestringwajib

    Nilai yang diizinkan: authorization_coderefresh_tokenclient_credentials

  • codestring

    Kode otorisasi (authorization_code).

  • redirect_uristring

    URI pengalihan yang sama seperti di permintaan otorisasi (authorization_code).

  • code_verifierstring

    Nilai PKCE asli, 43 hingga 128 karakter (authorization_code).

  • refresh_tokenstring

    Pembaruan token (refresh_token).

  • scopestring

    Cakupan yang dipisahkan spasi, hanya untuk mempersempit (refresh_token, client_credentials).

  • client_idstring

    ID aplikasi, jika rahasia tidak dikirim di header Authorization: Basic.

  • client_secretstring

    Rahasia klien aplikasi confidential, jika tidak dikirim di header Authorization: Basic.

Respons

200Token diterbitkan.

Header respons

  • RateLimit-Policy

    Batas yang berlaku, dalam format draf IETF draft-ietf-httpapi-ratelimit-headers: item yang dipisahkan koma "<name>";q=<quota>;w=<window in seconds>. key adalah laju permintaan kunci API (kuotanya adalah lonjakan, jendela waktunya adalah waktu untuk mengisinya kembali sepenuhnya; untuk sesi nilainya user, tanpa kredensial ip); minute, day, dan month adalah kuota organisasi untuk menit, hari, dan bulan kalender dalam UTC.

  • RateLimit

    Sisa setiap batas di RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Batas dari entri paling ketat di RateLimit-Policy (entri dengan sisa permintaan paling sedikit).

  • X-RateLimit-Remaining

    Sisa permintaan dalam batas paling ketat.

  • X-RateLimit-Reset

    Detik hingga batas paling ketat direset.

application/json

Objek: OAuthTokenResponse

  • access_tokenstringwajib

    Token akses (kbat_…) untuk header Authorization: Bearer.

  • token_typestringwajib

    Nilai yang diizinkan: Bearer

  • expires_inintegerwajib

    Masa berlaku token akses dalam detik.

  • refresh_tokenstring

    Token refresh (kbrt_…); tidak ada untuk client credentials.

  • scopestringwajib

    Cakupan token yang dipisahkan spasi.

400Error sebagaimana didefinisikan dalam RFC 6749, bagian 5.2.

Header respons

  • RateLimit-Policy

    Batas yang berlaku, dalam format draf IETF draft-ietf-httpapi-ratelimit-headers: item yang dipisahkan koma "<name>";q=<quota>;w=<window in seconds>. key adalah laju permintaan kunci API (kuotanya adalah lonjakan, jendela waktunya adalah waktu untuk mengisinya kembali sepenuhnya; untuk sesi nilainya user, tanpa kredensial ip); minute, day, dan month adalah kuota organisasi untuk menit, hari, dan bulan kalender dalam UTC.

  • RateLimit

    Sisa setiap batas di RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Batas dari entri paling ketat di RateLimit-Policy (entri dengan sisa permintaan paling sedikit).

  • X-RateLimit-Remaining

    Sisa permintaan dalam batas paling ketat.

  • X-RateLimit-Reset

    Detik hingga batas paling ketat direset.

401Kredensial klien tidak valid (`invalid_client`).

Header respons

  • RateLimit-Policy

    Batas yang berlaku, dalam format draf IETF draft-ietf-httpapi-ratelimit-headers: item yang dipisahkan koma "<name>";q=<quota>;w=<window in seconds>. key adalah laju permintaan kunci API (kuotanya adalah lonjakan, jendela waktunya adalah waktu untuk mengisinya kembali sepenuhnya; untuk sesi nilainya user, tanpa kredensial ip); minute, day, dan month adalah kuota organisasi untuk menit, hari, dan bulan kalender dalam UTC.

  • RateLimit

    Sisa setiap batas di RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Batas dari entri paling ketat di RateLimit-Policy (entri dengan sisa permintaan paling sedikit).

  • X-RateLimit-Remaining

    Sisa permintaan dalam batas paling ketat.

  • X-RateLimit-Reset

    Detik hingga batas paling ketat direset.

Percobaan ulang yang aman

Kirim header Idempotency-Key (misalnya UUID) bersama setiap POST dan PATCH. Percobaan ulang dengan kunci yang sama dalam 24 jam mengembalikan respons yang tersimpan alih-alih menjalankan permintaan lagi.

Batas laju

Respons berisi header RateLimit dan RateLimit-Policy serta header lama X-RateLimit-Limit, X-RateLimit-Remaining, dan X-RateLimit-Reset. Respons 429 berisi Retry-After dalam detik: tunggu, lalu coba lagi.

← oauth · Referensi API