Pengesahan
Dua cara pengesahan dengan API s.id, kunci API untuk pelayan-ke-pelayan, OAuth 2.0 untuk bertindak bagi pihak pengguna.
Akses pelayan ke pelayan
Kunci API mengesahkan integrasi pelayan-ke-pelayan. Buat satu di Dashboard → Pembangun → Kunci API, pilih skop anda, dan hantarkan sebagai token Bearer.
| Skop | ဝင်ရောက်ခွင့် |
|---|---|
links:read | Senaraikan dan baca pautan |
links:write | Cipta dan kemas kini pautan (cipta, edit, pulihkan) |
links:archive | Arkibkan pautan |
links:analytics | Baca statistik klik setiap pautan dan jumlah sepanjang masa |
qr:read | Baca tetapan kod QR (global dan setiap pautan) |
qr:write | Sesuaikan tetapan kod QR (global dan setiap pautan) |
user:read | Baca profil pengguna yang disahkan dan kuota akaun |
microsites:read | Baca microsite |
microsites:write | Cipta, kemas kini dan urus komponen microsite |
microsites:delete | Padam microsite dan komponennya |
bash
Authorization: Bearer sk_live_...bash
curl https://api.s.id/v2/links \
-H "Authorization: Bearer sk_live_..."- Kunci bermula dengan sk_live_ dan hanya ditunjukkan sekali semasa penciptaan.
- Minta hanya skop minimum yang diperlukan integrasi anda.
- Batalkan kunci segera jika terkompromi, buat yang baru.
- Jangan sesekali mendedahkan kunci API di sisi klien (pelayar, aplikasi mudah alih).
Aliran kebenaran
Alihkan pengguna ke s.id untuk persetujuan, sahkan state callback, kemudian tukar kod sekali guna dengan token akses dan token muat semula berputar.
- Jana nilai state yang tidak boleh dijangka, simpan dalam sesi pengguna dan sahkan padanan tepat semasa callback untuk mencegah CSRF.
- Gunakan redirect_uri yang sepadan tepat dengan yang didaftarkan untuk aplikasi OAuth anda.
PKCE diperlukan, tanpa rahsia klien
Untuk SPA, aplikasi mudah alih dan CLI. Cipta code_verifier rawak, hantar cabaran S256 semasa kebenaran, kemudian hantar pengesah asal ketika pertukaran token.
bash
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=S256bash
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"Rahsia klien pada backend dipercayai
Untuk aplikasi render pelayan atau backend yang boleh menyimpan client_secret secara sulit. PKCE kekal pilihan dan disyorkan sebagai pertahanan berlapis.
bash
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_VALUEbash
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"| Token akses | ရှင်းလင်းချက် |
|---|---|
access_token | Tamat tempoh selepas 1 jam |
refresh_token | Tamat tempoh selepas 30 hari |
code | Sekali guna; tamat tempoh selepas 10 minit |
bash
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"bash
curl -X POST https://api.s.id/oauth/revoke \
-H "Content-Type: application/json" \
-d '{"token":"TOKEN_TO_REVOKE"}'| Penemuan dan operasi token | ရှင်းလင်းချက် |
|---|---|
https://api.s.id/.well-known/oauth-authorization-server | Temui URL endpoint, skop yang disokong dan kaedah PKCE melalui metadata RFC 8414. |
POST /oauth/introspect | Pelayan sumber sulit boleh menyemak sama ada token aktif dan memeriksa skopnya. |
POST /oauth/revoke | Batalkan token akses atau muat semula apabila pengguna memutuskan sambungan integrasi anda. |
GET /oauth/userinfo | Baca profil yang dikaitkan dengan token akses OAuth yang membawa user:read. |