POST/oauth/token
ออกโทเค็น OAuth 2.0
oauth_token
เอนด์พอยต์ออกโทเค็นของ OAuth 2.0 (RFC 6749 หัวข้อ 3.2) grant_type: authorization_code แลกรหัสที่ใช้ได้ครั้งเดียวเป็นโทเค็นคู่ และต้องมี code_verifier (PKCE S256) refresh_token ออกโทเค็นคู่ใหม่แลกกับโทเค็นรีเฟรช และทำให้โทเค็นรีเฟรชก่อนหน้าใช้ไม่ได้ (การหมุนเวียน) การนำโทเค็นที่ใช้ไม่ได้แล้วมาใช้ซ้ำจะเพิกถอนทั้งสายโทเค็น client_credentials ออกโทเค็นในนามขององค์กร สำหรับแอป confidential เท่านั้น โดยไม่มีโทเค็นรีเฟรช ไคลเอ็นต์ confidential ยืนยันตัวตนด้วยเฮดเดอร์ Authorization: Basic หรือด้วยฟิลด์ client_id และ client_secret ส่วนไคลเอ็นต์สาธารณะส่งเฉพาะ client_id โทเค็นเข้าถึง (access token) มีอายุ 1 ชั่วโมง โทเค็นรีเฟรช (refresh token) มีอายุ 90 วัน การตอบกลับและข้อผิดพลาดเป็นไปตาม RFC 6749 หัวข้อ 5 พร้อม Cache-Control: no-store เพิ่มใน 1.62.0
การยืนยันตัวตน
ไม่ต้องใช้ข้อมูลรับรอง
เนื้อหาคำขอ
application/x-www-form-urlencoded
grant_typestringจำเป็นค่าที่ใช้ได้:
authorization_coderefresh_tokenclient_credentialscodestringรหัสการอนุญาต (
authorization_code)redirect_uristringURI สำหรับเปลี่ยนเส้นทางเดียวกับในคำขอการอนุญาต (
authorization_code)code_verifierstringค่า PKCE ต้นฉบับ ยาว 43 ถึง 128 อักขระ (
authorization_code)refresh_tokenstringโทเค็นรีเฟรช (
refresh_token)scopestringขอบเขตสิทธิ์ที่คั่นด้วยช่องว่าง ใช้เพื่อจำกัดให้แคบลงเท่านั้น (
refresh_tokenและclient_credentials)client_idstringID ของแอป เมื่อไม่ได้ส่งข้อมูลลับในเฮดเดอร์
Authorization: Basicclient_secretstringข้อมูลลับของไคลเอ็นต์ของแอป
confidentialเมื่อไม่ได้ส่งในเฮดเดอร์Authorization: Basic
การตอบกลับ
200ออกโทเค็นแล้ว
เฮดเดอร์การตอบกลับ
RateLimit-Policyขีดจำกัดที่มีผล ในรูปแบบของร่าง IETF
draft-ietf-httpapi-ratelimit-headers: รายการคั่นด้วยจุลภาค"<name>";q=<quota>;w=<window in seconds>โดยkeyคืออัตราคำขอของคีย์ API (โควตาคือช่วงพุ่งสูง (burst) กรอบเวลาคือเวลาที่ใช้เติมกลับจนเต็ม สำหรับเซสชันคือuserและเมื่อไม่มีข้อมูลรับรองคือip) ส่วนminutedayและmonthคือโควตาขององค์กรสำหรับนาที วัน และเดือนตามปฏิทินใน UTCRateLimitส่วนที่เหลือของแต่ละขีดจำกัดใน
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>X-RateLimit-Limitขีดจำกัดของรายการที่เข้มงวดที่สุดใน
RateLimit-Policy(รายการที่เหลือคำขอน้อยที่สุด)X-RateLimit-Remainingจำนวนคำขอที่เหลือภายใต้ขีดจำกัดที่เข้มงวดที่สุด
X-RateLimit-Resetจำนวนวินาทีจนกว่าขีดจำกัดที่เข้มงวดที่สุดจะรีเซ็ต
application/json
access_tokenstringจำเป็นโทเค็นเข้าถึง (
kbat_…) สำหรับเฮดเดอร์Authorization: Bearertoken_typestringจำเป็นค่าที่ใช้ได้:
Bearerexpires_inintegerจำเป็นอายุของโทเค็นเข้าถึงเป็นวินาที
refresh_tokenstringโทเค็นรีเฟรช (
kbrt_…) ไม่มีสำหรับ client credentialsscopestringจำเป็นขอบเขตสิทธิ์ของโทเค็นที่คั่นด้วยช่องว่าง
400ข้อผิดพลาดตามที่กำหนดใน RFC 6749 หัวข้อ 5.2
เฮดเดอร์การตอบกลับ
RateLimit-Policyขีดจำกัดที่มีผล ในรูปแบบของร่าง IETF
draft-ietf-httpapi-ratelimit-headers: รายการคั่นด้วยจุลภาค"<name>";q=<quota>;w=<window in seconds>โดยkeyคืออัตราคำขอของคีย์ API (โควตาคือช่วงพุ่งสูง (burst) กรอบเวลาคือเวลาที่ใช้เติมกลับจนเต็ม สำหรับเซสชันคือuserและเมื่อไม่มีข้อมูลรับรองคือip) ส่วนminutedayและmonthคือโควตาขององค์กรสำหรับนาที วัน และเดือนตามปฏิทินใน UTCRateLimitส่วนที่เหลือของแต่ละขีดจำกัดใน
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>X-RateLimit-Limitขีดจำกัดของรายการที่เข้มงวดที่สุดใน
RateLimit-Policy(รายการที่เหลือคำขอน้อยที่สุด)X-RateLimit-Remainingจำนวนคำขอที่เหลือภายใต้ขีดจำกัดที่เข้มงวดที่สุด
X-RateLimit-Resetจำนวนวินาทีจนกว่าขีดจำกัดที่เข้มงวดที่สุดจะรีเซ็ต
application/json
401ข้อมูลรับรองของไคลเอ็นต์ไม่ถูกต้อง (`invalid_client`)
เฮดเดอร์การตอบกลับ
RateLimit-Policyขีดจำกัดที่มีผล ในรูปแบบของร่าง IETF
draft-ietf-httpapi-ratelimit-headers: รายการคั่นด้วยจุลภาค"<name>";q=<quota>;w=<window in seconds>โดยkeyคืออัตราคำขอของคีย์ API (โควตาคือช่วงพุ่งสูง (burst) กรอบเวลาคือเวลาที่ใช้เติมกลับจนเต็ม สำหรับเซสชันคือuserและเมื่อไม่มีข้อมูลรับรองคือip) ส่วนminutedayและmonthคือโควตาขององค์กรสำหรับนาที วัน และเดือนตามปฏิทินใน UTCRateLimitส่วนที่เหลือของแต่ละขีดจำกัดใน
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>X-RateLimit-Limitขีดจำกัดของรายการที่เข้มงวดที่สุดใน
RateLimit-Policy(รายการที่เหลือคำขอน้อยที่สุด)X-RateLimit-Remainingจำนวนคำขอที่เหลือภายใต้ขีดจำกัดที่เข้มงวดที่สุด
X-RateLimit-Resetจำนวนวินาทีจนกว่าขีดจำกัดที่เข้มงวดที่สุดจะรีเซ็ต
application/json
การลองใหม่อย่างปลอดภัย
ส่งเฮดเดอร์ Idempotency-Key (เช่น UUID) ไปกับทุกคำขอ POST และ PATCH เมื่อลองใหม่ด้วยคีย์เดียวกันภายใน 24 ชั่วโมง Sursa จะส่งคืนการตอบกลับที่บันทึกไว้แทนการดำเนินการคำขอซ้ำ
ขีดจำกัดอัตราการเรียก
การตอบกลับมีเฮดเดอร์ RateLimit และ RateLimit-Policy รวมถึงเฮดเดอร์แบบเดิม X-RateLimit-Limit X-RateLimit-Remaining และ X-RateLimit-Reset การตอบกลับ 429 มี Retry-After เป็นวินาที ให้รอตามนั้นแล้วลองใหม่