การยืนยันตัวตนด้วย 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)
คำขอ 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