API Keys
เหมาะสำหรับแบ็กเอนด์ งานตามกำหนดเวลา และระบบอัตโนมัติส่วนตัวของคุณ ซึ่งข้อมูลรับรองจะไม่ถูกส่งไปยังเบราว์เซอร์หรือไคลเอนต์มือถือ
สองวิธีในการรับรองความถูกต้องกับ s.id API, API key สำหรับ server-to-server, OAuth 2.0 สำหรับการทำงานแทนผู้ใช้
เลือกตามขอบเขตความน่าเชื่อถือ
เหมาะสำหรับแบ็กเอนด์ งานตามกำหนดเวลา และระบบอัตโนมัติส่วนตัวของคุณ ซึ่งข้อมูลรับรองจะไม่ถูกส่งไปยังเบราว์เซอร์หรือไคลเอนต์มือถือ
เหมาะสำหรับแอปของบุคคลที่สามที่ต้องการความยินยอมจากผู้ใช้และการเข้าถึงบัญชี s.id แบบละเอียดที่เพิกถอนได้
API Keys
API key รับรองความถูกต้องของการเชื่อมต่อ server-to-server สร้างหนึ่งใน Dashboard → Developer → API Keys เลือกสิทธิ์ของคุณ และส่งเป็น Bearer token
Authorization: Bearer sk_live_...curl https://api.s.id/v2/links \
-H "Authorization: Bearer sk_live_..."links:readlinks:writelinks:archivelinks:analyticsqr:readqr:writeuser:readmicrosites:readmicrosites:writemicrosites:deleteOAuth 2.0
เปลี่ยนเส้นทางผู้ใช้ไปยัง s.id เพื่อให้ความยินยอม ตรวจสอบ state ของ callback แล้วแลกรหัสแบบใช้ครั้งเดียวเป็น access token และ refresh token แบบหมุนเวียน
ไคลเอนต์สาธารณะ
สำหรับ SPA แอปมือถือ และ CLI สร้าง code_verifier แบบสุ่ม ส่งค่า challenge S256 ตอนขออนุญาต แล้วส่ง verifier เดิมเมื่อแลกโทเค็น
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=S256curl -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"ไคลเอนต์ลับ
สำหรับแอปพลิเคชันที่เรนเดอร์บนเซิร์ฟเวอร์หรือแบ็กเอนด์ที่เก็บ client_secret เป็นความลับได้ PKCE ยังคงเป็นตัวเลือกและแนะนำให้ใช้เพื่อเพิ่มการป้องกันหลายชั้น
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_VALUEcurl -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"หมดอายุหลังจาก 1 ชั่วโมง
หมดอายุหลังจาก 30 วัน
ใช้ได้ครั้งเดียว และหมดอายุหลังจาก 10 นาที
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"curl -X POST https://api.s.id/oauth/revoke \
-H "Content-Type: application/json" \
-d '{"token":"TOKEN_TO_REVOKE"}'https://api.s.id/.well-known/oauth-authorization-serverค้นหา URL ของ endpoint สโคปที่รองรับ และวิธี PKCE ผ่านข้อมูลเมตา RFC 8414
POST https://api.s.id/oauth/introspectเซิร์ฟเวอร์ทรัพยากรลับสามารถตรวจสอบว่าโทเค็นยังใช้งานอยู่และดูสโคปของโทเค็นได้
POST https://api.s.id/oauth/revokeเพิกถอน access token หรือ refresh token เมื่อผู้ใช้ยกเลิกการเชื่อมต่อกับระบบของคุณ
GET https://api.s.id/oauth/userinfoอ่านโปรไฟล์ที่เชื่อมโยงกับโทเค็นการเข้าถึง OAuth ที่มี user:read
สร้าง API key ในไม่กี่นาที มีแพ็กเกจฟรี, ไม่ต้องใช้บัตรเครดิต