ข้ามไปยังเนื้อหาหลัก
s.id Logo
แพลตฟอร์มนักพัฒนา

การรับรองความถูกต้อง

สองวิธีในการรับรองความถูกต้องกับ s.id API, API key สำหรับ server-to-server, OAuth 2.0 สำหรับการทำงานแทนผู้ใช้

เลือกตามขอบเขตความน่าเชื่อถือ

คุณควรใช้วิธีใด?

API Keys

เหมาะสำหรับแบ็กเอนด์ งานตามกำหนดเวลา และระบบอัตโนมัติส่วนตัวของคุณ ซึ่งข้อมูลรับรองจะไม่ถูกส่งไปยังเบราว์เซอร์หรือไคลเอนต์มือถือ

OAuth 2.0

เหมาะสำหรับแอปของบุคคลที่สามที่ต้องการความยินยอมจากผู้ใช้และการเข้าถึงบัญชี s.id แบบละเอียดที่เพิกถอนได้

API Keys

การเข้าถึงแบบเซิร์ฟเวอร์ถึงเซิร์ฟเวอร์

API key รับรองความถูกต้องของการเชื่อมต่อ server-to-server สร้างหนึ่งใน Dashboard → Developer → API Keys เลือกสิทธิ์ของคุณ และส่งเป็น Bearer token

Authorization header
Authorization: Bearer sk_live_...
ตัวอย่างคำขอ
curl https://api.s.id/v2/links \
  -H "Authorization: Bearer sk_live_..."

รายการตรวจสอบความปลอดภัย

  • Key เริ่มต้นด้วย sk_live_ และแสดงเพียงครั้งเดียวเมื่อสร้าง
  • ขอเฉพาะสิทธิ์ขั้นต่ำที่การเชื่อมต่อของคุณต้องการ
  • เพิกถอน key ทันทีหากถูกบุกรุก, สร้างอันใหม่
  • อย่าเปิดเผย API key ฝั่ง client (เบราว์เซอร์, แอปมือถือ)
links:read
links:write
links:archive
links:analytics
qr:read
qr:write
user:read
microsites:read
microsites:write
microsites:delete

OAuth 2.0

Authorization flow

เปลี่ยนเส้นทางผู้ใช้ไปยัง s.id เพื่อให้ความยินยอม ตรวจสอบ state ของ callback แล้วแลกรหัสแบบใช้ครั้งเดียวเป็น access token และ refresh token แบบหมุนเวียน

ก่อนเปลี่ยนเส้นทางผู้ใช้

  • สร้างค่า state ที่คาดเดาไม่ได้ เก็บไว้ในเซสชันผู้ใช้ และตรวจสอบให้ตรงกันทุกประการเมื่อ callback เพื่อป้องกัน CSRF
  • ใช้ redirect_uri ที่ตรงกับค่าที่ลงทะเบียนไว้สำหรับแอปพลิเคชัน OAuth ของคุณทุกประการ

ไคลเอนต์สาธารณะ

ต้องใช้ PKCE โดยไม่มี client secret

สำหรับ 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=S256
แลกเปลี่ยน code กับ 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"

ไคลเอนต์ลับ

Client secret บนแบ็กเอนด์ที่เชื่อถือได้

สำหรับแอปพลิเคชันที่เรนเดอร์บนเซิร์ฟเวอร์หรือแบ็กเอนด์ที่เก็บ 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_VALUE
แลกเปลี่ยน code กับ 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"

โทเค็นการเข้าถึง

หมดอายุหลังจาก 1 ชั่วโมง

รีเฟรชโทเค็น

หมดอายุหลังจาก 30 วัน

รหัสอนุญาต

ใช้ได้ครั้งเดียว และหมดอายุหลังจาก 10 นาที

หมุนเวียน 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"
เพิกถอนโทเค็น
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 ในไม่กี่นาที มีแพ็กเกจฟรี, ไม่ต้องใช้บัตรเครดิต

รับ API key ของคุณ