跳轉至

令牌驗證

「權杖驗證」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: 無效appid
  • 6001: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: 無效appid
  • 6001: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
    }
}