跳转至

令牌验证

“令牌验证”API使用应用客户端登录结果 PlayerInfo 中的用户令牌、Player ID和Device ID验证令牌的有效性。该API采用服务器间通信方式,由应用服务器直接调用Hive认证服务器。

只要您的应用程序不允许重复登录,您就可以实现会话管理功能来管理经过验证的令牌或使用应用程序自己的会话密钥。

“令牌验证”API根据 X-Access-Token 中使用的JWT支持两种方式。

两种方式都需要在 Authorization 中传递登录结果的 PlayerInfo.playerToken。

Note

Hive 身份验证服务器在分布式环境中配置,以防止出现故障或网络通信问题。如果无法与认证服务器主机通信或者超过应用服务器设置的超时时间,则应用服务器必须直接调用相应API的分布式环境URL。这适用于令牌验证 API 支持的两种方法。

用户JWT方法

使用应用客户端登录成功后返回的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 在数组中指定它。

字段名称 描述 类型 返回值
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 响应体

响应码

根据验证结果,返回以下代码。

  • 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方法

如果没有 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 在数组中指定它。

字段名称 描述 类型 返回值
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 响应体

响应码

根据验证结果,返回以下代码。

  • 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
    }
}