จัดการบัญชี IdP
สร้างและจัดการบัญชีผู้เล่นโดยใช้ข้อมูลประจำตัว IdP (ผู้ให้บริการข้อมูลประจำตัว) API "การจัดการบัญชี IdP" ทำงานผ่านการสื่อสารแบบเซิร์ฟเวอร์ถึงเซิร์ฟเวอร์ โดยที่เซิร์ฟเวอร์แอปจะเรียกใช้เซิร์ฟเวอร์การตรวจสอบสิทธิ์ Hive โดยตรง สามารถใช้เพื่อวัตถุประสงค์ต่างๆ รวมถึงการสร้าง ID ผู้เล่น การเข้าสู่ระบบ การเชื่อมโยงและยกเลิกการเชื่อมโยง IdP การใช้การเข้าสู่ระบบในสภาพแวดล้อมทางเว็บ และการย้ายบัญชีที่มีอยู่
Note
API นี้ไม่รองรับการตรวจสอบสิทธิ์ผู้ใช้หรือการได้มาซึ่งข้อมูลรับรองผ่านผู้ให้บริการตรวจสอบสิทธิ์ภายนอก เช่น Google, Meta และ Apple ใช้กระบวนการเหล่านี้โดยตรงในไคลเอนต์แอปและส่งต่อผลลัพธ์ไปยังเซิร์ฟเวอร์แอป
API ที่ได้รับจากคุณสมบัติ 'การจัดการบัญชี IdP' มีดังต่อไปนี้ | จุดสิ้นสุด API | คำอธิบาย | | --- | --- | | POST /v2/game/auth/signinidp | เข้าสู่ระบบด้วย IdP | | POST /v2/game/auth/connect | เชื่อมโยง IdP | | POST /v2/game/auth/disconnect | ยกเลิกการเชื่อมโยง IdP |
IdP เข้าสู่ระบบ
สร้าง ID ผู้เล่นสำหรับผู้เล่นใหม่โดยใช้ข้อมูล IdP หรือส่งคืนข้อมูลผู้เล่นที่มีอยู่หาก IdP ลงทะเบียนแล้ว เมื่อคำขอเข้าสู่ระบบ IdP สำเร็จ คุณสามารถตรวจสอบ ID ผู้เล่นที่สร้างขึ้นได้ใน data.player_id
URL คำขอ
ส่วนหัวคำขอ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| X-Access-Token | โทเค็นการเข้าถึง OAuth 2.0 สำหรับการตรวจสอบเซิร์ฟเวอร์แอป (ดู การออก OAuth token) | String | Y |
| ISCRYPT | ข้อมูลถูกเข้ารหัสหรือไม่ (0 = ไม่ได้เข้ารหัส; ให้ผ่าน 0 เสมอ) | Integer | Y |
ขอเนื้อความ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| appid | รหัสแอป | String | Y |
| idp_index | รหัสดัชนี IdP ดูเอกสารอ้างอิงดัชนี IdP | Integer | Y |
| idp_user_id | ตัวระบุเฉพาะของผู้ใช้ IdP | String | Y |
| require_token | ไม่ว่าจะขอโทเค็นผู้เล่นหรือไม่ true เมื่อใช้ ลบบัญชี API; false เมื่อไม่ได้ใช้งาน | Boolean | Y |
Note
หากต้องการใช้ ลบบัญชี API ให้ตั้งค่า require_token เป็น true เพื่อรับค่า Authorization ในส่วนหัวการตอบกลับ หากคุณไม่ได้ใช้คุณสมบัติการลบบัญชี ให้ตั้งค่าเป็น false
ส่วนหัวของการตอบกลับ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| Authorization | โทเค็นเซสชัน ออกเมื่อ require_token: true | String |
| Content-Type | ข้อมูลรูปแบบข้อมูลการตอบกลับ (JSON) และการเข้ารหัสอักขระ (UTF-8) | String |
| ISCRYPT | ไม่ว่าการตอบสนองจะถูกเข้ารหัส | Integer |
เนื้อหาการตอบสนอง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| result_code | รหัสตอบกลับ รายละเอียด | Integer |
| result_msg | ข้อความผลลัพธ์ | String |
| token_validation | ผลการตรวจสอบ JWT (ข้อผิดพลาดการตรวจสอบ JWT) | Object |
| token_validation.result_code | รหัสผลลัพธ์การตรวจสอบ JWT | Integer |
| token_validation.result_msg | ข้อความผลการตรวจสอบ JWT | String |
| data.player_id | PlayerID | BigInteger |
| data.idp_index | ดัชนี IdP | Integer |
| data.idp_id | ชื่อรหัสประจำตัว | String |
| data.idp_user_id | รหัสผู้ใช้ IdP | String |
รหัสตอบกลับ
| ค่าโค้ด | คำอธิบาย |
| 0 | ความสำเร็จ |
| 2499 | การตรวจสอบ JWT ล้มเหลว (ดู token_validation) |
| 4000 | พารามิเตอร์ไม่ถูกต้อง |
| 4001 | คำขอ JSON ผิดพลาด |
| 4200 | IdP ที่ไม่มีอยู่ |
| 5000 | ข้อผิดพลาดเซิร์ฟเวอร์ภายใน |
| 7000 | โทเค็นไม่ถูกต้อง |
| 7001 | ไม่มีค่าโทเค็นในส่วนหัว |
ขอตัวอย่าง
{
"appid": "com.com2us.hivesdk.normal.freefull.apple.global.ios.universal",
"idp_index": 3,
"idp_user_id": "google_67890",
"require_token": true
}
ตัวอย่างการตอบกลับ
หัวเรื่อง
HTTP/1.1 200
Content-Type: application/json; charset=UTF-8
Authorization: abcdf7ebce779429ea878f91d5f1c8
ISCRYPT: 0
ความสำเร็จ
{
"result_code": 0,
"result_msg": "SUCCESS",
"token_validation": {
"result_code": 0,
"result_msg": "success"
},
"data": {
"player_id": 100000002,
"idp_index": 3,
"idp_id": "GOOGLE",
"idp_user_id": "google_67890"
}
}
ลิงค์ IdP
เชื่อมโยง IdP ใหม่กับบัญชีผู้เล่นที่มีอยู่ การเชื่อมโยง IdP จะใช้งานได้หลังจากสร้าง ID ผู้เล่นแล้วเท่านั้น
URL คำขอ
ส่วนหัวคำขอ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| X-Access-Token | โทเค็นการเข้าถึง OAuth 2.0 สำหรับการตรวจสอบเซิร์ฟเวอร์แอป (ดู การออก OAuth token) | String | Y |
| ISCRYPT | ข้อมูลถูกเข้ารหัสหรือไม่ (0 = ไม่ได้เข้ารหัส; ให้ผ่าน 0 เสมอ) | Integer | Y |
ขอเนื้อความ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| appid | รหัสแอป | String | Y |
| idp_index | รหัสดัชนี IdP ดูเอกสารอ้างอิงดัชนี IdP | Integer | Y |
| idp_user_id | ตัวระบุเฉพาะของผู้ใช้ IdP | String | Y |
| player_id | PlayerID เพื่อลิงก์ | BigInteger | Y |
เนื้อหาการตอบสนอง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| result_code | รหัสตอบกลับ รายละเอียด | Integer |
| result_msg | ข้อความผลลัพธ์ | String |
| token_validation | ผลการตรวจสอบ JWT (ข้อผิดพลาดการตรวจสอบ JWT) | Object |
| token_validation.result_code | รหัสผลลัพธ์การตรวจสอบ JWT | Integer |
| token_validation.result_msg | ข้อความผลการตรวจสอบ JWT | String |
| data.player_id | PlayerID | BigInteger |
| data.idp_index | ดัชนี IdP ที่เชื่อมโยง | Integer |
| data.idp_id | ชื่อ IdP ที่เชื่อมโยง | String |
| data.idp_user_id | รหัสผู้ใช้ IdP | String |
| #### รหัสตอบกลับ | | |
| ค่าโค้ด | คำอธิบาย | |
| --- | --- | |
| 0 | ความสำเร็จ | |
| 1002 | IdP นี้เชื่อมโยงกับผู้เล่นอื่นแล้ว | |
| 1003 | ลิงก์ IdP ประเภทเดียวกันแล้ว | |
| 2002 | ผู้เล่นที่ไม่มีอยู่ | |
| 2499 | การตรวจสอบ JWT ล้มเหลว (ดู token_validation) | |
| 4000 | พารามิเตอร์ไม่ถูกต้อง | |
| 4200 | IdP ที่ไม่มีอยู่ | |
| 5000 | ข้อผิดพลาดเซิร์ฟเวอร์ภายใน | |
| 7000 | โทเค็นไม่ถูกต้อง | |
| 7001 | ไม่มีค่าโทเค็นในส่วนหัว | |
ขอตัวอย่าง
{
"appid": "com.com2us.hivesdk.normal.freefull.apple.global.ios.universal",
"idp_index": 2,
"idp_user_id": "fb_12345678",
"player_id": 100000001
}
ตัวอย่างการตอบกลับ
ความสำเร็จ
{
"result_code": 0,
"result_msg": "SUCCESS",
"token_validation": {
"result_code": 0,
"result_msg": "success"
},
"data": {
"player_id": 100000001,
"idp_index": 2,
"idp_id": "FACEBOOK",
"idp_user_id": "fb_12345678"
}
}
เชื่อมโยงกับผู้เล่นอื่นแล้ว
{
"result_code": 1002,
"result_msg": "Already connected other player",
"token_validation": {
"result_code": 0,
"result_msg": "success"
},
"data": {
"player_id": 100000002,
"idp_index": 2,
"idp_id": "FACEBOOK",
"idp_user_id": "fb_12345678"
}
}
ยกเลิกการเชื่อมโยง IdP
ยกเลิกการเชื่อมโยง IdP ที่เชื่อมโยงกับบัญชีผู้เล่น การยกเลิกการเชื่อมโยง IdP จะใช้งานได้หลังจากสร้าง ID ผู้เล่นแล้วเท่านั้น
URL คำขอ
ส่วนหัวคำขอ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| X-Access-Token | โทเค็นการเข้าถึง OAuth 2.0 สำหรับการตรวจสอบเซิร์ฟเวอร์แอป (ดู การออก OAuth token) | String | Y |
| ISCRYPT | ข้อมูลถูกเข้ารหัสหรือไม่ (0 = ไม่ได้เข้ารหัส; ให้ผ่าน 0 เสมอ) | Integer | Y |
ขอเนื้อความ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| appid | รหัสแอป | String | Y |
| idp_index | รหัสดัชนี IdP ดูเอกสารอ้างอิงดัชนี IdP | Integer | Y |
| idp_user_id | ตัวระบุเฉพาะของผู้ใช้ IdP | String | Y |
| player_id | PlayerID เพื่อยกเลิกการเชื่อมโยง | BigInteger | Y |
เนื้อหาการตอบสนอง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| result_code | รหัสตอบกลับ รายละเอียด | Integer |
| result_msg | ข้อความผลลัพธ์ | String |
| token_validation | ผลการตรวจสอบ JWT (ข้อผิดพลาดการตรวจสอบ JWT) | Object |
| token_validation.result_code | รหัสผลลัพธ์การตรวจสอบ JWT | Integer |
| token_validation.result_msg | ข้อความผลการตรวจสอบ JWT | String |
| #### รหัสตอบกลับ | | |
| ค่าโค้ด | คำอธิบาย | |
| --- | --- | |
| 0 | ความสำเร็จ | |
| 2499 | การตรวจสอบ JWT ล้มเหลว (ดู token_validation) | |
| 4000 | พารามิเตอร์ไม่ถูกต้อง | |
| 4006 | ไม่มีข้อมูล IdP ที่เชื่อมโยง | |
| 4200 | IdP ที่ไม่มีอยู่ | |
| 7000 | โทเค็นไม่ถูกต้อง | |
| 7001 | ไม่มีค่าโทเค็นในส่วนหัว | |
ขอตัวอย่าง
{
"appid": "com.com2us.hivesdk.normal.freefull.apple.global.ios.universal",
"idp_index": 2,
"idp_user_id": "fb_12345678",
"player_id": 100000001
}
ตัวอย่างการตอบกลับ
ความสำเร็จ
{
"result_code": 0,
"result_msg": "SUCCESS",
"token_validation": {
"result_code": 0,
"result_msg": "success"
}
}
Note
เมื่อการตรวจสอบ JWT ล้มเหลว คุณสามารถตรวจสอบข้อมูลข้อผิดพลาดโดยละเอียดได้ในฟิลด์ token_validation สำหรับรายละเอียด โปรดดู รหัสข้อผิดพลาดการตรวจสอบ JWT