令牌驗證¶
「權杖驗證」API使用應用程式用戶端登入結果 PlayerInfo 中的使用者權杖、Player ID和Device ID驗證權杖的有效性。此API採用伺服器間通訊方式,由應用程式伺服器直接呼叫Hive驗證伺服器。
只要您的應用程式不允許重複登錄,您就可以實現會話管理功能來管理經過驗證的令牌或使用應用程式自己的會話金鑰。
「權杖驗證」API根據 X-Access-Token 中使用的JWT支援兩種方式。
兩種方式都需要在 Authorization 中傳遞登入結果的 PlayerInfo.playerToken。
Note
Hive 身份驗證伺服器在分散式環境中配置,以防止故障或網路通訊問題。如果無法與認證伺服器主機通訊或超過應用程式伺服器設定的逾時時間,則應用伺服器必須直接呼叫對應API的分散式環境URL。這適用於令牌驗證 API 支援的兩種方法。
用戶JWT方法{ #get-token }¶
使用應用程式用戶端登入成功後傳回的User JWT驗證權杖。請在 X-Access-Token 中傳遞 PlayerInfo.accessToken。
Request URL¶
以下每個環境的 URL:POST 請使用方法請求它。請求體和回應的資料格式為JSON。
| 環境 | URL | HTTP Method | Content-Type |
|---|---|---|---|
| 商業 | https://auth.qpyou.cn/v2/game/token/get-token | POST | application/json |
| 分散式環境 | https://auth.globalwithhive.com/v2/game/token/get-token | POST | application/json |
| Sandbox | https://sandbox-auth.qpyou.cn/v2/game/token/get-token | POST | application/json |
Request header¶
請分別在 Authorization 和 X-Access-Token 中傳遞要驗證的使用者權杖和User JWT。ISCRYPT 必須設定為表示不加密的 0。
| 欄位名稱 | 描述 | 類型 | 需要嗎? |
|---|---|---|---|
Authorization | 從應用程式用戶端成功登入後返回的使用者令牌。PlayerInfo.playerToken | String | Y |
X-Access-Token | 用戶 JWT 用於用戶身份驗證。登入成功後返回PlayerInfo.accessToken | String | Y |
ISCRYPT | 您的資料是否加密。當然0傳遞給 | Integer | Y |
Request body¶
從登入結果傳遞使用者識別資訊。 include_fields如果您指定 ,則響應的data包括該欄位的附加資訊。
| 欄位名稱 | 描述 | 類型 | 需要嗎? |
|---|---|---|---|
appid | App ID | String | Y |
did | 登入成功後傳回的實例ID | String | Y |
player_id | 登入成功後回傳的驗證玩家ID | BigInteger | Y |
include_fields | 要包含在回應中的附加資訊的欄位清單。 附加字段列表 另請參閱 | Array | N |
附加字段列表{ #include_fields }¶
在下面的欄位中輸入所需的項目include_fields 在數組中指定它。
| 欄位名稱 | 描述 | 類型 | 傳回值 |
|---|---|---|---|
is_blocked | 使用有什麼限制嗎? | Boolean | true:制裁,false: 正常 |
is_device_registered | 是否啟用設備管理 | Boolean | true:使用,false: 未使用 |
join_timestamp | player_id 加入日期 | Long | Unix Timestamp |
china_pi_no | 中國實名認證號碼 | String / null | 如果未完成實名認證null |
Response body¶
result_code使用 來檢查令牌驗證結果。如果JWT驗證失敗token_validation檢查詳細錯誤。錯誤是什麼意思? JWT驗證錯誤代碼見。
| 欄位名稱 | 描述 | 類型 | 地點 |
|---|---|---|---|
result_code | 結果代碼。 0驗證成功。 回應碼 另請參閱 | Integer | 響應體 |
result_msg | 結果資訊 | String | 響應體 |
token_validation | JWT驗證結果 | Object | 響應體 |
token_validation.result_code | JWT驗證結果碼 | Integer | token_validation 子 |
token_validation.result_msg | JWT驗證結果訊息 | String | token_validation 子 |
data | 根據要求include_fields包含指定資訊的對象 | Object | 響應體 |
回應碼{ #result_code }¶
根據驗證結果,傳回以下程式碼。
0:成功2300:以退款用戶還款為準2499: JWT 驗證失敗。token_validation另請參閱4000: 無效參數4001: 請求JSON錯誤5000:資料庫錯誤6000: 無效appid6001:IdP 令牌錯誤7000: 無效令牌7001: 請求頭中沒有令牌值9999: 未知錯誤
Request example¶
這是基本請求和請求附加資訊的正文的範例。請求標頭包含上述令牌和ISCRYPT請分別附上。
預設請求¶
僅包含必填欄位的範例請求正文。
{
"appid": "com.com2us.hivesdk.normal.freefull.apple.global.ios.universal",
"did": "255764404509548",
"player_id": 10000000000
}
索取更多信息¶
include_fields這是請求四條附加資訊的主體的範例。
{
"appid": "com.com2us.hivesdk.normal.freefull.apple.global.ios.universal",
"did": "255764404509548",
"player_id": 10000000000,
"include_fields": ["is_blocked", "is_device_registered", "join_timestamp", "china_pi_no"]
}
Response example¶
這是基於附加資訊請求的成功令牌驗證和回應的範例。
驗證成功¶
這是令牌驗證成功的回應範例。
{
"result_code": 0,
"result_msg": "SUCCESS",
"token_validation": {
"result_code": 0,
"result_msg": "success"
}
}
JWT 驗證失敗¶
這是由於 JWT 有效期到期而導致驗證失敗的回應範例。
{
"result_code": 2499,
"result_msg": "JWT validation failed. See token_validation for details.",
"token_validation": {
"result_code": 2408,
"result_msg": "The access token is expired. Please refresh your token."
}
}
包括附加資訊¶
include_fields要求提供的信息data這是包含在 中的範例回應。
{
"result_code": 0,
"result_msg": "SUCCESS",
"token_validation": {
"result_code": 0,
"result_msg": "success"
},
"data": {
"is_blocked": false,
"is_device_registered": false,
"join_timestamp": 1495594605,
"china_pi_no": null
}
}
專案JWT方法{ #get-token-project }¶
如果沒有 User JWT,則使用應用程式伺服器頒發的 Project JWT 來驗證令牌。 X-Access-Token在頒發 OAuth 令牌傳遞由 核發的用於應用程式伺服器驗證的存取權杖。
Request URL¶
以下每個環境的 URL:POST 請使用方法請求它。請求體和回應的資料格式為JSON。
| 環境 | URL | HTTP Method | Content-Type |
|---|---|---|---|
| 商業 | https://auth.qpyou.cn/v2/game/token/get-token-project | POST | application/json |
| 分散式環境 | https://auth.globalwithhive.com/v2/game/token/get-token-project | POST | application/json |
| Sandbox | https://sandbox-auth.qpyou.cn/v2/game/token/get-token-project | POST | application/json |
Request header¶
用戶token和專案JWT分別進行驗證Authorization和X-Access-Token請轉發給.ISCRYPT是一個不使用加密的值0它必須被傳承下去。
| 欄位名稱 | 描述 | 類型 | 需要嗎? |
|---|---|---|---|
Authorization | 從應用程式用戶端成功登入後返回的使用者令牌。 PlayerInfo.playerToken | String | Y |
X-Access-Token | 用於應用程式伺服器身份驗證的 JWT 專案。 頒發 OAuth 令牌OAuth 2.0 訪問令牌由下列機構頒發 | String | Y |
ISCRYPT | 您的資料是否加密。當然0傳遞給 | Integer | Y |
Request body¶
從登入結果傳遞使用者識別資訊。 include_fields如果您指定 ,則響應的data包括該欄位的附加資訊。
| 欄位名稱 | 描述 | 類型 | 需要嗎? |
|---|---|---|---|
appid | App ID | String | Y |
did | 登入成功後傳回的實例ID | String | Y |
player_id | 登入成功後回傳的驗證玩家ID | BigInteger | Y |
include_fields | 要包含在回應中的附加資訊的欄位清單。 附加字段列表 另請參閱 | Array | N |
附加字段列表{ #include_fields_project }¶
在下面的欄位中輸入所需的項目include_fields 在數組中指定它。
| 欄位名稱 | 描述 | 類型 | 傳回值 |
|---|---|---|---|
is_blocked | 使用有什麼限制嗎? | Boolean | true:制裁,false: 正常 |
is_device_registered | 是否啟用設備管理 | Boolean | true:使用,false: 未使用 |
join_timestamp | player_id 加入日期 | Long | Unix Timestamp |
china_pi_no | 中國實名認證號碼 | String / null | 如果未完成實名認證null |
Response body¶
result_code使用 來檢查令牌驗證結果。如果JWT驗證失敗token_validation檢查詳細錯誤。錯誤是什麼意思? JWT驗證錯誤代碼見。
| 欄位名稱 | 描述 | 類型 | 地點 |
|---|---|---|---|
result_code | 結果代碼。 0驗證成功。 回應碼 另請參閱 | Integer | 響應體 |
result_msg | 結果資訊 | String | 響應體 |
token_validation | JWT驗證結果 | Object | 響應體 |
token_validation.result_code | JWT驗證結果碼 | Integer | token_validation 子 |
token_validation.result_msg | JWT驗證結果訊息 | String | token_validation 子 |
data | 根據要求include_fields包含指定資訊的對象 | Object | 響應體 |
回應碼{ #get-token-project-result-code }¶
根據驗證結果,傳回以下程式碼。
0:成功2300:以退款用戶還款為準2499: JWT 驗證失敗。token_validation另請參閱4000: 無效參數4001: 請求JSON錯誤5000:資料庫錯誤6000: 無效appid6001:IdP 令牌錯誤7000: 無效令牌7001: 請求頭中沒有令牌值9999: 未知錯誤
Request example¶
這是基本請求和請求附加資訊的正文的範例。請求標頭包含上述令牌和ISCRYPT請分別附上。
預設請求¶
僅包含必填欄位的範例請求正文。
{
"appid": "com.com2us.hivesdk.normal.freefull.apple.global.ios.universal",
"did": "255764404509548",
"player_id": 10000000000
}
索取更多信息¶
include_fields這是請求四條附加資訊的主體的範例。
{
"appid": "com.com2us.hivesdk.normal.freefull.apple.global.ios.universal",
"did": "255764404509548",
"player_id": 10000000000,
"include_fields": ["is_blocked", "is_device_registered", "join_timestamp", "china_pi_no"]
}
Response example¶
這是基於附加資訊請求的成功令牌驗證和回應的範例。
驗證成功¶
這是令牌驗證成功的回應範例。
{
"result_code": 0,
"result_msg": "SUCCESS",
"token_validation": {
"result_code": 0,
"result_msg": "success"
}
}
JWT 驗證失敗¶
這是由於 JWT 有效期到期而導致驗證失敗的回應範例。
{
"result_code": 2499,
"result_msg": "JWT validation failed. See token_validation for details.",
"token_validation": {
"result_code": 2408,
"result_msg": "The access token is expired. Please refresh your token."
}
}
包括附加資訊¶
include_fields要求提供的信息data這是包含在 中的範例回應。