Lewati ke konten utama
s.id Logo
Platform Developer

Autentikasi

Dua cara autentikasi dengan API s.id, API key untuk server-ke-server, OAuth 2.0 untuk bertindak atas nama pengguna.

Pilih berdasarkan batas kepercayaan

Metode mana yang sebaiknya digunakan?

API Key

Cocok untuk backend milikmu, pekerjaan terjadwal, dan automasi privat saat kredensial tidak pernah dikirim ke browser atau aplikasi mobile.

OAuth 2.0

Cocok untuk aplikasi pihak ketiga yang membutuhkan persetujuan pengguna dan akses terperinci yang dapat dicabut ke akun s.id.

API Key

Akses server-ke-server

API key dipakai buat autentikasi integrasi server-ke-server. Buat satu di Dashboard → Developer → API Keys, pilih scope kamu, lalu kirim sebagai token Bearer.

Header Otorisasi
Authorization: Bearer sk_live_...
Contoh permintaan
curl https://api.s.id/v2/links \
  -H "Authorization: Bearer sk_live_..."

Daftar periksa keamanan

  • Kunci diawali sk_live_ dan hanya ditampilkan sekali saat pembuatan.
  • Minta scope seminimal mungkin yang integrasimu butuhkan.
  • Cabut kunci segera jika dikompromi, buat yang baru.
  • Jangan pernah mengekspos API key di sisi klien (browser, aplikasi mobile).
links:read
links:write
links:archive
links:analytics
qr:read
qr:write
user:read
microsites:read
microsites:write
microsites:delete

OAuth 2.0

Alur otorisasi

Arahkan pengguna ke s.id untuk memberikan persetujuan, verifikasi state saat callback, lalu tukarkan kode sekali pakai dengan access token dan refresh token yang berotasi.

Sebelum mengarahkan pengguna

  • Buat nilai state acak, simpan di sesi pengguna, lalu verifikasi kecocokan persis saat callback untuk mencegah CSRF.
  • Gunakan redirect_uri yang persis sama dengan URI yang terdaftar untuk aplikasi OAuth-mu.

Klien publik

PKCE wajib, tanpa client secret

Untuk SPA, aplikasi mobile, dan CLI. Buat code_verifier acak, kirim challenge S256 saat authorize, lalu kirim verifier asli ketika menukar token.

Alihkan pengguna
https://api.s.id/oauth/authorize?
  response_type=code&
  client_id=YOUR_CLIENT_ID&
  redirect_uri=https%3A%2F%2Fapp.example.com%2Fcallback&
  scope=links%3Aread%20links%3Awrite&
  state=RANDOM_CSRF_VALUE&
  code_challenge=BASE64URL_SHA256_VERIFIER&
  code_challenge_method=S256
Tukarkan kode dengan token
curl -X POST https://api.s.id/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=authorization_code" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "code=AUTHORIZATION_CODE" \
  -d "redirect_uri=https://app.example.com/callback" \
  -d "code_verifier=ORIGINAL_RANDOM_VERIFIER"

Klien rahasia

Client secret di backend tepercaya

Untuk aplikasi server-rendered atau backend yang dapat menjaga client_secret. PKCE tetap opsional dan disarankan sebagai perlindungan tambahan.

Alihkan pengguna
https://api.s.id/oauth/authorize?
  response_type=code&
  client_id=YOUR_CLIENT_ID&
  redirect_uri=https%3A%2F%2Fapp.example.com%2Fcallback&
  scope=links%3Aread%20links%3Awrite&
  state=RANDOM_CSRF_VALUE
Tukarkan kode dengan token
curl -X POST https://api.s.id/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=authorization_code" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "client_secret=YOUR_CLIENT_SECRET" \
  -d "code=AUTHORIZATION_CODE" \
  -d "redirect_uri=https://app.example.com/callback"

Access token

Berlaku selama 1 jam

Refresh token

Berlaku selama 30 hari

Authorization code

Sekali pakai; kedaluwarsa setelah 10 menit

Rotasi refresh token
curl -X POST https://api.s.id/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=refresh_token" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "refresh_token=CURRENT_REFRESH_TOKEN"
Cabut token
curl -X POST https://api.s.id/oauth/revoke \
  -H "Content-Type: application/json" \
  -d '{"token":"TOKEN_TO_REVOKE"}'

Discovery dan operasi token

Metadata authorization server

https://api.s.id/.well-known/oauth-authorization-server

Temukan URL endpoint, scope yang didukung, dan metode PKCE melalui metadata RFC 8414.

Introspeksi token

POST https://api.s.id/oauth/introspect

Resource server rahasia dapat memeriksa apakah token aktif dan melihat scope-nya.

Pencabutan token

POST https://api.s.id/oauth/revoke

Cabut access token atau refresh token saat pengguna memutus integrasimu.

Pengguna terotorisasi

GET https://api.s.id/oauth/userinfo

Baca profil yang terkait dengan access token OAuth yang memiliki user:read.

Siap mulai membangun?

Buat API key dalam hitungan menit. Sudah termasuk tier gratis, tanpa kartu kredit.

Dapatkan API key kamu