เริ่มต้นใช้งาน
ข้อมูลหลัก
อื่นๆ

การยืนยันตัวตนด้วย OAuth 2.0

Client Credentials ของ OAuth2

SEEK Pass ใช้ OAuth 2.0 พร้อมประเภทการให้สิทธิ์ Client Credentials สำหรับการยืนยันตัวตนระหว่างเซิร์ฟเวอร์ OAuth credentials (client_id และ client_secret) ได้รับการจัดเตรียมไว้อย่างปลอดภัย (เช่น ผ่าน 1Password) สำหรับทั้งสภาพแวดล้อม staging และ production สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ OAuth 2.0 โปรดดู OAuth 2.0 Authorization Framework

สภาพแวดล้อม

ปลายทาง (endpoint) ของสภาพแวดล้อม staging และ production อยู่ด้านล่าง:
ขอ OAuth access token โดยเรียกใช้ OAuth token endpoint พร้อม scope ที่เหมาะสมสำหรับประเภทข้อมูลรับรองของคุณ (เช่น write.education, write.english_proficiency)
Caution
คำขอ API ทั้งหมดต้องมีเฮดเดอร์ User-Agent คำขอที่ไม่มีเฮดเดอร์นี้จะถูกปฏิเสธด้วยการตอบกลับ 403 Forbidden ไคลเอนต์และไลบรารี HTTP มาตรฐานส่วนใหญ่ (เช่น Axios, Python Requests, curl) จะตั้งค่านี้โดยอัตโนมัติ ดังนั้นโดยส่วนใหญ่ไม่ต้องดำเนินการเพิ่มเติม หากคุณใช้ไคลเอนต์ HTTP แบบกำหนดเองหรือระดับต่ำ โปรดตรวจสอบว่าได้ตั้งค่าUser-Agent header ไว้อย่างชัดเจน ตัวอย่างเช่น: User-Agent: YourAppName/1.0
export SEEK_PASS_URL=https://app.seekpass-staging.com
export CLIENT_ID=<YOUR CLIENT ID>
export CLIENT_SECRET=<YOUR CLIENT SECRET>
curl --location $SEEK_PASS_URL/api/partner/v1/oauth/token.json \
--header 'Accept: application/json' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'User-Agent: curl/8.4.0' \
--data-urlencode grant_type=client_credentials \
--data-urlencode client_id=$CLIENT_ID \
--data-urlencode client_secret=$CLIENT_SECRET \
--data-urlencode 'scope=write.education'

คำขอแบบ Batch

เพื่อใช้ฟีเจอร์การส่งแบบชุด คุณต้องใส่ประเภทที่ร้องขอทั้งหมดในฟิลด์ scope ในคำขอ OAuth token ของคุณ
สิ่งนี้ช่วยให้คุณส่งเอกสารรับรองหลายรายการได้ในคำขอ API ครั้งเดียว

ตัวอย่าง:

curl -L $SEEK_PASS_URL/api/partner/v1/oauth/token.json \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode grant_type=client_credentials \
--data-urlencode client_id=$CLIENT_ID \
--data-urlencode client_secret=$CLIENT_SECRET \
--data-urlencode 'scope=write.microcredential write.education write.digital_identity'

รหัสการตอบกลับ

ด้านล่างคือรหัสสถานะ HTTP ที่ API ของ SEEK Pass ส่งกลับ การทำความเข้าใจรหัสตอบกลับเหล่านี้จะช่วยให้คุณจัดการสถานการณ์ต่าง ๆ ในการผสานรวมได้

200 OK: การยืนยันตัวตนสำเร็จ
{
    "access_token": "eyJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE3NDAzNTkyNTEsImV4cCI6MTc.ZnOZlWaSeJx_ySk3Pl88Xy8KnPKc4EX",
    "token_type": "Bearer",
    "expires_in": 7199,
    "scope": "write.education",
    "created_at": 1736144436
}
บันทึก access_token ไว้สำหรับขั้นตอนถัดไป:
export ACCESS_TOKEN=eyJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE3NDAzNTkyNTEsImV4cCI6MTc.ZnOZlWaSeJx_ySk3Pl88Xy8KnPKc4EX