令牌验证¶
“令牌验证”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: 无效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方法¶
如果没有 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: 无效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这是包含在 中的示例响应。