ยืนยันการเข้าสู่ระบบและดึงข้อมูลผู้ใช้
การตรวจสอบการเข้าสู่ระบบและการดึงข้อมูลผู้ใช้ เป็น API ที่ตรวจสอบข้อมูลการเข้าสู่ระบบโดยใช้รหัสการตรวจสอบชั่วคราว (state
) ที่ถูกเปลี่ยนเส้นทางจาก หน้าเข้าสู่ระบบ และส่งคืนข้อมูลผู้ใช้ เมื่อส่งคืนข้อมูลผู้ใช้ จะรวมถึง access token และ refresh tokenด้วย
ค่าที่ส่งกลับโดยการร้องขอ API การตรวจสอบการเข้าสู่ระบบและการดึงข้อมูลผู้ใช้ ส่วนใหญ่มีดังนี้
- ข้อมูล IdP
- ข้อมูลผู้ใช้
- โทเค็นการเข้าถึง/การรีเฟรช
Note
หลังจากการตรวจสอบการเข้าสู่ระบบที่สำเร็จแล้ว กรณีที่ต้องการข้อมูลผู้ใช้หรือข้อมูลโทเค็นมีดังนี้
- สำหรับผู้ใช้ที่ได้ทำการตรวจสอบการเข้าสู่ระบบเว็บและมี PlayerID ที่สร้างขึ้นแล้ว การตอบสนองจะรวมถึงข้อมูลผู้ใช้ (
user_info
) อย่างไรก็ตาม หากข้อมูลผู้ใช้มีการเปลี่ยนแปลงหรือจำเป็นต้องตรวจสอบแยกต่างหาก คุณสามารถตรวจสอบได้โดยการเรียกใช้ API การดึงข้อมูลผู้ใช้。 - หากต้องการ access/refresh tokens คุณต้องทำการเข้าสู่ระบบเว็บอีกครั้งหรือทำการต่ออายุผ่าน Token Refresh API ก่อนที่โทเค็นจะหมดอายุ。
URL การร้องขอ
เนื้อหาคำขอ
ชื่อฟิลด์ | ประเภท | คำอธิบาย | จำเป็น |
grant_type | สตริง | OAuth 2.0 authorization code flow default: authorization_code | ใช่ |
state | สตริง | รหัสการอนุญาตชั่วคราวที่ได้รับหลังจากเข้าสู่ระบบ (authorization_code) | ใช่ |
client_id | สตริง | OAuth 2.0 Client ID ที่สร้างขึ้นในการตั้งค่ากุญแจความปลอดภัย คุณสามารถตรวจสอบได้ใน Hive console App Center > Security Key Settings. | ใช่ |
client_secret | สตริง | OAuth 2.0 Client Secret ที่สร้างขึ้นในการตั้งค่ากุญแจความปลอดภัย คุณสามารถตรวจสอบได้ใน Hive console App Center > Security Key Settings. | ใช่ |
redirect_uri | สตริง | นี่คือที่อยู่ URI ที่จะเปลี่ยนเส้นทาง มันต้องตรงกับ Redirect URI ที่ตั้งค่าใน Hive console Authentication > Authentication Environment Settings > Login Settings. | ใช่ |
ตัวอย่างเนื้อหาคำขอ
{
"grant_type": "authorization_code",
"state": "1627881984263-jkx1B3GOY3EsJ",
"client_id": "58b48cd3-df47-5b52-2627-3f9c8d01",
"client_secret": "bec7760b237244c4c818d6174587d8e1",
"redirect_uri": "https://community.withhive.com/hivesdk/login/redirect"
}
เนื้อหาการตอบกลับ
ชื่อฟิลด์ | ประเภท | คำอธิบาย | หมายเหตุ |
รหัส | จำนวนเต็ม | รหัสการตอบกลับการเข้าสู่ระบบเว็บ | |
appid | สตริง | รหัสแอป | |
idp_index | จำนวนเต็ม | ดัชนี IdP ที่ใช้สำหรับการเข้าสู่ระบบ | 1 : Hive2 : Facebook3 : Google9 : Apple
|
idp_user_id | สตริง | รหัสประจำตัวที่ไม่ซ้ำกันที่ใช้สำหรับการเข้าสู่ระบบ IdP | |
enc_idp | สตริง | คีย์เข้ารหัสสำหรับข้อมูล IdP | การออกโทเค็นการเข้าสู่ระบบอัตโนมัติของ PC ภายนอก |
user_info | JSON | ข้อมูลผู้ใช้ | |
user_info.auth_ver | สตริง | เวอร์ชันเซิร์ฟเวอร์การตรวจสอบสิทธิ์ | |
user_info.user_id | จำนวนเต็มใหญ่ | รหัสผู้เล่น Auth v4 | |
user_info.user_idp_list | อาร์เรย์ | รายการ IdP ที่เชื่อมโยง | รายการที่มีข้อมูลของ IdP ที่ผู้ใช้เชื่อมโยง |
user_info.user_idp_list.player_id | จำนวนเต็มใหญ่ | รายการ IdP ที่เชื่อมโยง - รหัสผู้เล่น Auth v4 | |
user_info.user_idp_list.idp_user_id | สตริง | รายการ IdP ที่เชื่อมโยง - รหัสประจำตัวที่ไม่ซ้ำกันสำหรับ IdP | |
user_info.user_idp_list.idp_index | จำนวนเต็ม | รายการ IdP ที่เชื่อมโยง - ดัชนี IdP | 1 : Hive2 : Facebook3 : Google9 : Apple
|
user_info.user_idp_list.idp_id | สตริง | รายการ IdP ที่เชื่อมโยง - รหัส IdP | GUEST ถูกสร้างขึ้นโดยอัตโนมัติแม้ว่าจะเล่นกับ IdP อื่น |
user_info.is_blocked | บูลีน | สถานะการระงับการใช้งาน | true : ผู้ใช้ถูกระงับfalse : ผู้ใช้ปกติ
|
user_info.is_refund | บูลีน | ว่าผู้ใช้มีสิทธิ์ได้รับการคืนเงินหรือไม่ | true : ผู้ใช้มีสิทธิ์ได้รับการคืนเงินfalse : ผู้ใช้ไม่มีสิทธิ์ได้รับการคืนเงิน
|
user_info.access_token | สตริง | โทเค็นการเข้าถึง (JWT) - อัลกอริธึมแบบอสมมาตร | - ไม่ได้ออกหากไม่มีบัญชี (PlayerID).
- ระยะเวลาที่ใช้ได้: 1 ชั่วโมง
|
user_info.refresh_token | สตริง | โทเค็นการรีเฟรช (JWT) - อัลกอริธึมแบบอสมมาตร | - ไม่ได้ออกหากไม่มีบัญชี (PlayerID).
- ระยะเวลาที่ใช้ได้: 30 วัน
|
รหัสตอบกลับการเข้าสู่ระบบเว็บ
รหัส | คำอธิบาย | หมายเหตุ |
100 | สำเร็จ | |
1050 | พารามิเตอร์ไม่ถูกต้อง | |
1075 | เกิดข้อผิดพลาดในการสื่อสารกับเซิร์ฟเวอร์การตรวจสอบสิทธิ์ | |
2011 | ไม่มีข้อมูลโครงการ | |
2013 | โครงการอยู่ในสถานะที่ถูกยกเลิก | |
2021 | ผู้ใช้ยังไม่ได้ทำการตรวจสอบสิทธิ์ IdP หรือเซสชันโทเค็นของผู้ใช้หมดอายุ | |
2023 | ข้อมูลโทเค็นของผู้ใช้ไม่ปกติ | |
7000 | ไม่สามารถสร้างคีย์ความปลอดภัย OAuth2.0 | ตรวจสอบใน Hive console App Center > การตั้งค่าคีย์ความปลอดภัย |
7001 | ข้อมูล Client ID ของ OAuth2.0 ขาดหายไป | 〃 |
7002 | ข้อมูล Client ของ OAuth2.0 ไม่ตรงกัน | 〃 |
7003 | ไม่พบข้อมูล Client ของ OAuth2.0 | 〃 |
7004 | ประเภทการออกโทเค็น OAuth2.0 ไม่รองรับ | ตรวจสอบ grant_type ใน Request Body |
7005 | URI การเปลี่ยนเส้นทาง OAuth2.0 ไม่ตรงกัน | ตรวจสอบ redirect_uri ใน Request Body |
8001 | การสร้างโทเค็น JWT ของ OAuth2.0 ล้มเหลว | |
ตัวอย่างเนื้อหาการตอบกลับ (สำเร็จ - ข้อมูลผู้ใช้มีอยู่)
นี่คือตัวอย่างของข้อมูลการตอบกลับที่ส่งกลับเมื่อเงื่อนไขต่อไปนี้เป็นจริง
- เมื่อการเข้าสู่ระบบเว็บเสร็จสมบูรณ์
- เมื่อ PlayerID ถูกสร้างขึ้นบนเซิร์ฟเวอร์การตรวจสอบสิทธิ์
{
"code": 100,
"appid": "com.com2us.hivesdk.ios.community.global.normal",
"idp_index": 3,
"idp_user_id": "105213591741718897220",
"enc_idp": "K+A4xduO7kf5OrJ/iDPqL2wrbMQTkNQ+jDz3OCCdGiezVsfW74kV0c/Qn2ipdP/ChFBUXoZkEUP03X26MVHnvgqHo9JG2BUCsRVcrsx+03IPRvpzjXAiY5c0tihk45jMWuPYo7q+j5Rsz8eSTKQo1vE9N85huOJWc8IAJKMqBRlpmiNfj+CgZQ5I7uV2u1nHhiLfwRqpt0vG/dT9mpdQisiKUS2mFIpgPnVSZaVMY7qnTvP+mTU11Yv2DhOq2VEycAic9Ko8UkBnllXEApqarqF5s4jg6bu9DxcnRNtZeaGbh4fZKEptjGuE6qqo3CsC1PN5TnU0Wf5uav07CaazsTpEBvA9SNZefWEeTDP2ePK8qd573vpXy4OQHpTOJkVm1AsN/Ir8Fssj9SKGdYyVuZ282VDAiFLAIlVyK4pAfjJRAve+G9tIm/i4mgQmuAqW",
"user_info": {
"auth_ver": "v4",
"user_id": 20000018552,
"user_idp_list": [
{
"player_id": 20000018552,
"idp_user_id": "105213591741718897220",
"idp_index": 3,
"idp_id": "GOOGLE"
},
{
"player_id": 20000018552,
"idp_user_id": "0",
"idp_index": 0,
"idp_id": "GUEST"
}
],
"is_blocked": false,
"is_refund": false,
"access_token": "eyJraWQiOiIwYThlMThkOS1hNmZiLTM3ZDMtNjkwYy02Zjg1ZTllNCIsInR5cCI6IkpXVCIsImFsZyI6IlJTMjU2In0.eyJpc193aGl0ZWxpc3QiOmZhbHNlLCJwcm9qZWN0X2lkIjoiY29tLmNvbTJ1cy5oaXZlc2RrIiwiZ3JhbnRfdHlwZSI6InVzZXIiLCJ1c2VyX2lkIjoyMDAwMDAxODU1MiwidG9rZW5fdHlwZSI6ImFjY2Vzc190b2tlbiIsImV4cCI6MTc0NTU2MTk4MywiaWF0IjoxNzQ1NTU4MzgzLCJhdXRoX3ZlciI6InY0In0.e4mCIirRpAni4A1ZEF3FDOFng3Da8hq6IqZmyyRQZsc7W3LfFi_id5TIQSDbvmagmT4GcwHztovpoYZxf8blwqES1lJmEVXsBBJ3qpEOAem0K9aVwY0zmOO3A0Eeh6Y0APABewNCpHiKPCMZwxSsMaUE56FfuYgnbhpsipR638VgyPniRVU-Bzcu0Pi2zo-5yUKbg2FCXex510fvZRxqGZPg8Rfhm-jXqAYuwALLIFf2ZykOWqVRFtczfPXwB6fLQrQvQeBnOYcHHnR1q8Fi-Rk_bQPsAffIemGvaC4vUeyx6Szzt_Gok1BsuF76lYZ5ogCn4lAlZ0SJLrgMM2-DNQ",
"refresh_token": "eyJraWQiOiIwYThlMThkOS1hNmZiLTM3ZDMtNjkwYy02Zjg1ZTllNCIsInR5cCI6IkpXVCIsImFsZyI6IlJTMjU2In0.eyJpc193aGl0ZWxpc3QiOmZhbHNlLCJwcm9qZWN0X2lkIjoiY29tLmNvbTJ1cy5oaXZlc2RrIiwiZ3JhbnRfdHlwZSI6InVzZXIiLCJ1c2VyX2lkIjoyMDAwMDAxODU1MiwidG9rZW5fdHlwZSI6InJlZnJlc2hfdG9rZW4iLCJleHAiOjE3NDgxNTAzODMsImlhdCI6MTc0NTU1ODM4MywiYXV0aF92ZXIiOiJ2NCJ9.fvXTfRDYhlk21EY-ngAXbQMgYM9f-rFYPBa_GMV3JDz3cy9wwGfPTnF-VO0WkpxzpPdbG1ZX0HAdIkT4kF873ee2d-g6-JeuIEy0SFcTMpdYWXnlOfsuZlFIkzCm0OB_mlnNo_wxXHvjHM_dFDF-SfK2r9_ga8yLOXDfLJeA4XUYGwwsG3XT9x5Vy8RlUcF2aeuf-2bXdLSD2NGssZh18RTayV2CNtGuX0kj-nABVVTzLWUqbwKSrIVXjlS76zxl3SisUW_pz97iM98yLLRdpe_56_VDPzKEqVmn4bCyhhlAT1LEdu_uudlBY7hSUX0cJzcLAtj_4GReuLU9SnvQpw"
}
}
ตัวอย่างเนื้อหาตอบกลับ (สำเร็จ - ไม่มีข้อมูลผู้ใช้)
นี่คือตัวอย่างของข้อมูลการตอบกลับที่ส่งคืนเมื่อเงื่อนไขต่อไปนี้เป็นจริง
- หากการเข้าสู่ระบบเว็บเสร็จสมบูรณ์
- แม้ว่าจะไม่มีการสร้าง PlayerID บนเซิร์ฟเวอร์การตรวจสอบสิทธิ์ นักพัฒนาสามารถใช้ตัวระบุ IdP (
idp_index
, idp_user_id
) เป็นตัวระบุบัญชีของผู้ใช้เพื่อดำเนินการเข้าสู่ระบบ อย่างไรก็ตาม, หากการเข้าสู่ระบบทำโดยไม่มีข้อมูลผู้ใช้ จะไม่มี PlayerID ดังนั้น เก็บการเข้าสู่ระบบ (SSO) จะไม่สามารถใช้ได้.
{
"code": 100,
"appid": "com.com2us.hivesdk.ios.community.global.normal",
"idp_index": 3,
"idp_user_id": "105213591741718897220",
"enc_idp": "K+A4xduO7kf5OrJ/iDPqL2wrbMQTkNQ+jDz3OCCdGiezVsfW74kV0c/Qn2ipdP/ChFBUXoZkEUP03X26MVHnvgqHo9JG2BUCsRVcrsx+03IPRvpzjXAiY5c0tihk45jMWuPYo7q+j5Rsz8eSTKQo1vE9N85huOJWc8IAJKMqBRlpmiNfj+CgZQ5I7uV2u1nHhiLfwRqpt0vG/dT9mpdQisiKUS2mFIpgPnVSZaVMY7qnTvP+mTU11Yv2DhOq2VEycAic9Ko8UkBnllXEApqarqF5s4jg6bu9DxcnRNtZeaGbh4fZKEptjGuE6qqo3CsC1PN5TnU0Wf5uav07CaazsTpEBvA9SNZefWEeTDP2ePK8qd573vpXy4OQHpTOJkVm1AsN/Ir8Fssj9SKGdYyVuZ282VDAiFLAIlVyK4pAfjJRAve+G9tIm/i4mgQmuAqW"
}
ตัวอย่างเนื้อหาการตอบกลับ (ความล้มเหลว)
นี่คือตัวอย่างของข้อมูลการตอบกลับที่ส่งกลับเมื่อมีการตอบสนองตามเงื่อนไขต่อไปนี้
- หากการเข้าสู่ระบบเว็บล้มเหลว
การออก Token สำหรับการเข้าสู่ระบบอัตโนมัติของ PC ภายนอก
- เมื่อเรียกใช้ตัวเปิดเกม Hive crossplay ค่าตัวระบุที่เกี่ยวข้อง (web_idp_token) จะถูกส่งสำหรับการเข้าสู่ระบบอัตโนมัติ.
- web_idp_token เป็นโทเค็นแบบครั้งเดียวที่ต้องได้รับใหม่ทุกครั้งที่เริ่มเกม.
Note
- โปรดระวังอย่าเปิดเผยค่า enc_idp ที่ส่งคำขอเพื่อเหตุผลด้านความปลอดภัย
- การเรียก API จำเป็นต้องใช้การเชื่อมต่อระหว่างเซิร์ฟเวอร์
URL การร้องขอ
เนื้อหาคำขอ
ชื่อฟิลด์ | ประเภท | คำอธิบาย | จำเป็น |
appid | String | App ID | Y |
enc_idp | String | คีย์ที่เข้ารหัสสำหรับข้อมูล IdP | Y |
ตัวอย่างเนื้อหาคำขอ
{
"appid": "com.com2us.hivesdk.ios.community.global.normal",
"enc_idp": "K+A4xduO7kf5OrJ/iDPqL2wrbMQTkNQ+jDz3OCCdGiezVsfW74kV0c/Qn2ipdP/ChFBUXoZkEUP03X26MVHnvgqHo9JG2BUCsRVcrsx+03IPRvpzjXAiY5c0tihk45jMWuPYo7q+j5Rsz8eSTKQo1vE9N85huOJWc8IAJKMqBRlpmiNfj+CgZQ5I7uV2u1nHhiLfwRqpt0vG/dT9mpdQisiKUS2mFIpgPnVSZaVMY7qnTvP+mTU11Yv2DhOq2VEycAic9Ko8UkBnllXEApqarqF5s4jg6bu9DxcnRNtZeaGbh4fZKEptjGuE6qqo3CsC1PN5TnU0Wf5uav07CaazsTpEBvA9SNZefWEeTDP2ePK8qd573vpXy4OQHpTOJkVm1AsN/Ir8Fssj9SKGdYyVuZ282VDAiFLAIlVyK4pAfjJRAve+G9tIm/i4mgQmuAqW"
}
เนื้อหาการตอบกลับ
ชื่อฟิลด์ | ประเภท | คำอธิบาย | หมายเหตุ |
result_code | จำนวนเต็ม | รหัสผลลัพธ์ | |
result_msg | สตริง | ข้อความผลลัพธ์ | |
data | JSON | ข้อมูลผลลัพธ์ | |
data.web_idp_token | สตริง | โทเค็นการเข้าสู่ระบบอัตโนมัติของ PC ภายนอก | |
ตัวอย่างเนื้อหาการตอบกลับ
{
"result_code": 0,
"result_msg": "SUCCESS",
"data": {
"web_idp_token": "c47e61856f04f0a6194ddcbabca70a7f10552d044181386e625676fd07a63aee5d2b162a78a55bad350ed58fb07b79be8fea1c786108307f32b602019f31ac8d"
}
}
รหัสผลลัพธ์
result_code | คำอธิบาย |
0 | สำเร็จ |
4000 | พารามิเตอร์คำขอไม่ถูกต้อง |
4012 | ข้อผิดพลาดในการถอดรหัส enc_idp |