调用登录页面
Web 登录是一个允许用户通过网页登录 IdP 的功能。
登录页面调用 是一个API,它返回一个临时身份验证代码(state)以及用户可以登录到IdP的Hive网页登录URL地址。
在请求 登录页面调用 API后,当用户在被调用的登录页面完成网页登录时,通过请求时提供的重定向URI返回一个临时身份验证代码(state)。临时身份验证代码(state)是进行登录验证和用户信息检索 API请求时必须提供的参数。
请求 URL¶
| 环境 | URL |
|---|---|
| 生产 | https://weblogin.withhive.com/login?param= |
| 沙盒 | https://sandbox-weblogin.withhive.com/login?param= |
| HTTP 方法 | GET |
| 内容类型 | text/html |
请求查询参数¶
| 字段名称 | 类型 | 描述 | 必需 |
|---|---|---|---|
| param | 字符串 | 通过对下面的 JSON 对象进行 URL 编码和 BASE64 编码生成的字符串。 | Y |
请求查询参数 JSON 结构 (param)¶
| 字段名称 | 类型 | 描述 |
|---|---|---|
| appid | 字符串 | 应用 ID |
| url | 字符串 | 登录完成后重定向的 URI 地址。必须与 Hive 控制台中注册的 重定向 URI 匹配 身份验证 > 身份验证设置 > 登录设置。如果不匹配,将显示 2012 错误页面。 |
| client_id | 字符串 | 在安全密钥设置中创建的 OAuth 2.0 客户端 ID。您可以在 Hive 控制台 应用中心 > 安全密钥设置 中查看。 |
| response_type | 字符串 | OAuth 2.0 授权方法。默认: code |
| country | 字符串 | 在游戏或社区中设置的国家代码(如果未提供,则使用浏览器默认值) |
| language | 字符串 | 在游戏或社区中设置的语言代码(如果未提供,则使用浏览器默认值) |
请求查询参数 JSON (param) 示例¶
请求查询参数 JSON (param) 由如下所示的 JSON 对象组成。
{
"appid": "com.com2us.hivesdk.ios.community.global.normal",
"url": "https://community.withhive.com/hivesdk/login/redirect",
"client_id": "58b48cd3-df47-5b52-2627-3f9c8d01",
"response_type": "code",
"country": "KR",
"language": "ko"
}
在API调用期间,此JSON对象按以下顺序转换为字符串,并用作param查询参数。
- URL编码
- BASE64编码
# 인코딩된 param을 붙여 호출하는 URL 예시
https://weblogin.withhive.com/login?param=JTdCJTIyYXBwaWQlMjIlM0ElMjJjb20uY29tMnVzLmhpdmVzZGsuaW9zLmNvbW11bml0eS5nbG9iYWwubm9ybWFsJTIyJTJDJTIydXJsJTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZjb21tdW5pdHkud2l0aGhpdmUuY29tJTJGaGl2ZXNkayUyRmxvZ2luJTJGcmVkaXJlY3QlMjIlMkMlMjJjbGllbnRfaWQlMjIlM0ElMjI1OGI0OGNkMy1kZjQ3LTViNTItMjYyNy0zZjljOGQwMSUyMiUyQyUyMnJlc3BvbnNlX3R5cGUlMjIlM0ElMjJjb2RlJTIyJTJDJTIyY291bnRyeSUyMiUzQSUyMktSJTIyJTJDJTIybGFuZ3VhZ2UlMjIlM0ElMjJrbyUyMiU3RA==
响应行为¶
- 响应结果为 HTTP 302 重定向。
- 浏览器被重定向到
Location头中设置的 URI,并将res查询参数添加到该 URI。 res是一个 URL 编码和 BASE64 编码的 JSON 字符串。
重定向位置 URI 示例¶
# https://community.withhive.com/hivesdk/login/redirect를 리다이렉트 URI로 설정한 경우
https://community.withhive.com/hivesdk/login/redirect?res=JTdCJTIyY29kZSUyMiUzQSUyMjEwMCUyMiUyQyUyMnN0YXRlJTIyJTNBJTIyMTY4ODEwODkyNzk0Mi1CUHVxcHFFaUd6S0lIJTIyJTdE
响应查询参数 (res)¶
res 是经过 URL 编码和 BASE64 编码后转换为字符串的值,由一个 JSON 对象组成,包含如下所示的键值。
| 字段名称 | 类型 | 描述 |
|---|---|---|
| code | 字符串 | Web 登录响应代码 如果不成功,它将重定向到包含错误代码的 Web 登录错误页面。 |
| state | 字符串 | 临时授权代码(authorization_code),在请求令牌发行时使用。 |
响应查询参数 响应代码¶
| 代码 | 描述 | 备注 |
|---|---|---|
| 100 | 成功 | |
| 1050 | 无效参数 | |
| 1051 | URL 解码错误 | |
| 1052 | BASE64 解码错误 | |
| 1053 | 无效参数值 | ?param= 的值 |
| 2005 | 异常请求值 | |
| 2011 | 没有项目信息 | |
| 2012 | 重定向 URI 不匹配 | 必须与 Hive 控制台中注册的 重定向 URI 匹配 身份验证 > 身份验证设置 > 登录设置。 |
| 2013 | 项目处于终止状态 | |
| 2016 | 没有应用 ID 信息 | |
| 2018 | 没有公司信息 | |
| 2020 | 临时身份验证代码 (state) 发放失败 | |
| 2022 | 临时身份验证代码 (state) 存储失败 | |
| 7000 | OAuth2.0 安全密钥未生成 | 在 Hive 控制台中检查 应用中心 > 安全密钥设置。 |
| 7003 | 没有 OAuth2.0 客户端信息 | 〃 |
响应查询参数示例 (res)¶
要再次将 res 用作 JSON 对象,您需要执行 BASE64 解码和 URL 解码的反向操作。下面显示了一个 JSON 对象的示例。