ยืนยันการเข้าสู่ระบบและดึงข้อมูลผู้ใช้
 การตรวจสอบการเข้าสู่ระบบและการดึงข้อมูลผู้ใช้ เป็น 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 | ออกโทเค็นสำหรับการเข้าสู่ระบบอัตโนมัติบนเว็บไซต์ภายนอก | 
  | 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"
}
ตัวอย่างเนื้อหาการตอบกลับ (ความล้มเหลว)
 นี่คือตัวอย่างของข้อมูลการตอบกลับที่ส่งกลับเมื่อมีการตอบสนองตามเงื่อนไขต่อไปนี้
  - หากการเข้าสู่ระบบเว็บล้มเหลว
ออกโทเค็นสำหรับการเข้าสู่ระบบอัตโนมัติบนเว็บไซต์ภายนอก
  - เมื่อเรียกใช้ตัวเปิดเกม 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 |