From 555a48056d62e19d9cc3222773ee2a90bf6111d7 Mon Sep 17 00:00:00 2001 From: Kamisato-Ayaka-233 <2627706725@qq.com> Date: Mon, 11 Sep 2023 19:48:08 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90P=E3=80=91=E4=BF=AE=E5=A4=8D=E4=B8=8D?= =?UTF-8?q?=E5=90=88=E7=90=86=E7=9A=84=E8=AF=B4=E6=98=8E=20=E3=80=90A?= =?UTF-8?q?=E3=80=91=E5=9C=A8=E9=A6=96=E9=A1=B5=E5=A2=9E=E5=8A=A0=E7=BC=BA?= =?UTF-8?q?=E5=A4=B1=E7=9A=84=E6=96=87=E6=A1=A3=E8=B6=85=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 +- hoyolab/login/password_hoyolab.md | 228 ++++++++++++++++------------- hoyolab/login/password_passport.md | 183 +++++++++++------------ hoyolab/login/qrcode_hoyolab.md | 66 ++++----- hoyolab/user/token.md | 2 +- other/id.md | 1 + 6 files changed, 251 insertions(+), 232 deletions(-) diff --git a/README.md b/README.md index b5f2c58..1708865 100644 --- a/README.md +++ b/README.md @@ -77,8 +77,9 @@ - [ ] [米游社](hoyolab) - [ ] [登录](hoyolab/login) - - [x] [密码登录](hoyolab/login/password.md) - [x] [验证码登录](hoyolab/login/sms.md) + - [x] [密码登录(米游社)](hoyolab/login/password_hoyolab.md) + - [x] [密码登录(米哈游通行证)](hoyolab/login/password_passport.md) - [x] [扫码登录(GameToken)](hoyolab/login/qrcode_hk4e.md) - [x] [扫码登录(米游社)](hoyolab/login//qrcode_hoyolab.md) - [ ] [论坛](hoyolab/forum) diff --git a/hoyolab/login/password_hoyolab.md b/hoyolab/login/password_hoyolab.md index ce595fb..2af97e8 100644 --- a/hoyolab/login/password_hoyolab.md +++ b/hoyolab/login/password_hoyolab.md @@ -2,7 +2,7 @@ - [密码登录](#密码登录) - [操作步骤](#操作步骤) - - [获取设备指纹信息(device_fp)](#获取设备指纹信息) + - [获取设备指纹(`device_fp`)](#获取设备指纹) - [发送登录请求](#发送登录请求) --- @@ -11,10 +11,10 @@ ### 操作步骤 -1. [获取设备指纹信息](#获取设备指纹信息),记录返回`data`对象的`device_fp。 -2. 向服务器传入账号密码以获取登录信息。 +1. [获取设备指纹信息](#获取设备指纹),记录返回`data`对象的`device_fp`。 +2. 向服务器传入账号密码以[获取登录信息](#发送登录请求),获取响应头中所有`Set-Cookie`。可获取的Cookie有:Account ID、MiHoYo id、LToken(V2)、特定Cookie Token。 -### 获取设备指纹信息 +### 获取设备指纹 **国服:** @@ -26,13 +26,13 @@ _请求方式:POST_ | 字段 | 类型 | 内容 | 备注 | | ---------- | ---- | ----------------------------------- | --------------------------------------------------------- | -| device_id | str | 设备id | | -| seed_id | str | 种子id | 可随机生成 | -| seed_time | str | 当前UNIX时间戳 | | -| platform | str | 设备平台 | 不同的设备平台需要包含的拓展字段内容不同 | -| device_fp | str | 设备指纹信息 | 可随机生成 | -| app_name | str | 请求的应用名称
bbs_cn 米游社 | | -| ext_fields | str | 拓展字段 | 为使用字符串包裹的 json 字段,若platform为4则必须包含 userAgent 字段,若platform为2则需要包含['cpuType', 'romCapacity', 'productName', 'romRemain', 'manufacturer', 'appMemory', 'hostname', 'screenSize', 'osVersion', 'aaid', 'vendor', 'accelerometer', 'buildTags', 'model', 'brand', 'oaid', 'hardware', 'deviceType', 'devId', 'serialNumber', 'buildTime', 'buildUser', 'ramCapacity', 'magnetometer', 'display', 'ramRemain', 'deviceInfo', 'gyroscope', 'vaid', 'buildType', 'sdkVersion', 'board']字段 | +| device_id | str | 设备ID | | +| seed_id | str | 一般为随机值 | | +| seed_time | str | 当前的Unix时间戳 | | +| platform | str | 设备平台
1 iOS
2 安卓
4 网页 | 不同的设备平台需要在`ext_fields`字段中填写的的内容不同 | +| device_fp | str | 设备指纹 | 在此处可随机生成 | +| app_name | str | 请求的应用标识符
bbs_cn 米游社 | | +| ext_fields | str | 一些设备信息 | 为JSON字符串。若`platform`为`4`,则必须包含`userAgent`字段;若`platform`为`2`,则需要包含['cpuType', 'romCapacity', 'productName', 'romRemain', 'manufacturer', 'appMemory', 'hostname', 'screenSize', 'osVersion', 'aaid', 'vendor', 'accelerometer', 'buildTags', 'model', 'brand', 'oaid', 'hardware', 'deviceType', 'devId', 'serialNumber', 'buildTime', 'buildUser', 'ramCapacity', 'magnetometer', 'display', 'ramRemain', 'deviceInfo', 'gyroscope', 'vaid', 'buildType', 'sdkVersion', 'board']字段 |
查看示例 @@ -46,52 +46,52 @@ _请求方式:POST_ "device_fp": "38d7efe8b7f79", "app_name": "bbs_cn", "ext_fields": "{ - \"cpuType\":\"arm64-v8a\", - \"romCapacity\":\"512\", - \"productName\":\"ishtar\", - \"romRemain\":\"459\", - \"manufacturer\":\"Xiaomi\", - \"appMemory\":\"512\", - \"hostname\":\"xiaomi.eu\", - \"screenSize\":\"1440x3022\", - \"osVersion\":\"13\", - \"aaid\":\"a945fe0c-5f49-4481-9ee8-418e74508414\", - \"vendor\":\"中国电信\", - \"accelerometer\":\"0.061016977x0.8362915x9.826724\", - \"buildTags\":\"release-keys\", - \"model\":\"2304FPN6DC\", - \"brand\":\"Xiaomi\", - \"oaid\":\"67b292338ad57a24\", - \"hardware\":\"qcom\", - \"deviceType\":\"ishtar\", - \"devId\":\"REL\", - \"serialNumber\":\"unknown\", - \"buildTime\":\"1690889245000\", - \"buildUser\":\"builder\", - \"ramCapacity\":\"229481\", - \"magnetometer\":\"80.64375x-14.1x77.90625\", - \"display\":\"TKQ1.221114.001 release-keys\", - \"ramRemain\":\"110308\", - \"deviceInfo\":"Xiaomi/ishtar/ishtar:13/TKQ1.221114.001/V14.0.17.0.TMACNXM:user/release-keys", - \"gyroscope\":\"7.9894776E-4x-1.3315796E-4x6.6578976E-4\", - \"vaid\":\"4c10d338150078d8", - \"buildType\":\"user\", - \"sdkVersion\":\"33\", - \"board\":\"kalama\" - }", + \"cpuType\":\"arm64-v8a\", + \"romCapacity\":\"512\", + \"productName\":\"ishtar\", + \"romRemain\":\"459\", + \"manufacturer\":\"Xiaomi\", + \"appMemory\":\"512\", + \"hostname\":\"xiaomi.eu\", + \"screenSize\":\"1440x3022\", + \"osVersion\":\"13\", + \"aaid\":\"a945fe0c-5f49-4481-9ee8-418e74508414\", + \"vendor\":\"中国电信\", + \"accelerometer\":\"0.061016977x0.8362915x9.826724\", + \"buildTags\":\"release-keys\", + \"model\":\"2304FPN6DC\", + \"brand\":\"Xiaomi\", + \"oaid\":\"67b292338ad57a24\", + \"hardware\":\"qcom\", + \"deviceType\":\"ishtar\", + \"devId\":\"REL\", + \"serialNumber\":\"unknown\", + \"buildTime\":\"1690889245000\", + \"buildUser\":\"builder\", + \"ramCapacity\":\"229481\", + \"magnetometer\":\"80.64375x-14.1x77.90625\", + \"display\":\"TKQ1.221114.001 release-keys\", + \"ramRemain\":\"110308\", + \"deviceInfo\":\"Xiaomi/ishtar/ishtar:13/TKQ1.221114.001/V14.0.17.0.TMACNXM:user/release-keys\", + \"gyroscope\":\"7.9894776E-4x-1.3315796E-4x6.6578976E-4\", + \"vaid\":\"4c10d338150078d8\", + \"buildType\":\"user\", + \"sdkVersion\":\"33\", + \"board\":\"kalama\" + }", "bbs_device_id": "b66a6178-f56d-30ed-97aa-297560c98fc1" } ```
-**JSON 返回:** +**JSON返回:** 根对象: | 字段 | 类型 | 内容 | 备注 | | ------- | ---- | --------------- | ---- | -| retcode | num | 返回码 | -502 传入的内容有误 | +| retcode | num | 返回码
-502 传入的内容有误 | | | message | str | 返回消息 | | | data | obj | 设备指纹 | | @@ -100,7 +100,7 @@ _请求方式:POST_ | 字段 | 类型 | 内容 | 备注 | | ------ | ---- | ------------------ | ------------------- | | device_fp | str | 设备指纹 | | -| code | num | 回传的http状态码 | | +| code | num | 返回码 | | | msg | str | 错误消息 | |
@@ -108,13 +108,13 @@ _请求方式:POST_ ```json { - 'data':{ - 'code': 200, - 'device_fp': 'ui33vcedffou', - 'msg': 'ok' - }, - 'message': 'OK', - 'retcode': 0 + "message": "OK", + "retcode": 0, + "data": { + "code": 200, + "device_fp": "ui33vcedffou", + "msg": "ok" + } } ``` @@ -134,11 +134,9 @@ _请求方式:POST_ > > `x-rpc-game_biz`:`bbs_cn` > -> `x-rpc-device_fp` +> `x-rpc-device_fp`:刚获取的设备指纹 > -> `x-rpc-device_id` -> -> *其中`x-rpc-device_fp`的值为刚才获取的`device_fp`的值* +> `x-rpc-device_id`:与上个步骤传递的设备ID相同 `https://passport-api.mihoyo.com/account/ma-cn-passport/app/loginByPassword` @@ -146,8 +144,8 @@ _请求方式:POST_ | 字段 | 类型 | 内容 | 备注 | | ---- | ---- | ---- | ---- | -| account | str | 要登录的账户 | 使用RSA + Base64加密,加密方式[详见该页面](password_passport.md#%E8%8E%B7%E5%8F%96login-ticket) | -| password | str | 密码 | 使用RSA + Base64加密,加密方式[详见该页面](password_passport.md#%E8%8E%B7%E5%8F%96login-ticket) | +| account | str | 将登录账户的绑定邮箱或绑定手机 | 使用RSA + Base64加密,加密方式[详见该页面](password_passport.md#获取login-ticket) | +| password | str | 将登录账户的密码 | 使用RSA + Base64加密,加密方式[详见该页面](password_passport.md#获取login-ticket) | **JSON返回:** @@ -155,70 +153,94 @@ _请求方式:POST_ | 字段 | 类型 | 内容 | 备注 | | ---- | ---- | ---- | ---- | -| retcode | num | 返回码
| | +| retcode | num | 返回码 | | | message | str | 返回消息 | | -| data | obj | 账户信息| | +| data | obj | 账号信息 | | `data`对象: | 字段 | 类型 | 内容 | 备注 | | ---- | ---- | ---- | ---- | -| login_ticket | str | Login Ticket | | +| login_ticket | str | Login Ticket | 在一些情况下没有该字段 | | need_realperson | str | 是否要求用户进行实名认证 | | -| token | obj | 包含stoken_v2?的对象 | | +| token | obj | 该账户的SToken(V2) | 在一些情况下没有该字段 | | user_info | obj | 用户信息 | | +| reactivate_info | obj | 待调查 | | +| realname_info | obj | 待调查 | | -`user_info`对象: +`data`对象→`user_info`对象: | 字段 | 类型 | 内容 | 备注 | | --------------- | ---- | -------------------------------------------- | ------------ | -| account_name | str | 账户名 | 国服默认为空 | +| account_name | str | 账号名称 | 总是为空字符串 | | aid | str | Account ID | | -| area_code | str | 账户所绑定的电话号码对应的国家区号 | | -| country | str | 国家 | 国服默认为空 | -| email | str | 账户所绑定的邮箱 | | -| identity_code | str | 身份证号码 | | -| is_email_verify | str | 邮箱是否认证通过
1 已认证
0 未认证 | | +| area_code | str | 账号所绑定的电话号码对应的国家区号 | | +| country | str | 国家 | 总是为空字符串 | +| email | str | 账号所绑定的邮箱 | | +| identity_code | str | 账号的实名认证身份证号 | | +| is_email_verify | str | 邮箱是否通过认证
1 已认证
0 未认证 | | | links | str | 第三方绑定信息 | | | mid | str | MiHoYo ID | | -| mobile | str | 账户所绑定的电话号码 | | -| realname | str | 用户的真实姓名 | | +| mobile | str | 账号的绑定手机 | | +| realname | str | 账号的实名认证姓名 | | + +`data`对象→`token`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | --- | ---- | ---- | +| token_type | num | 1 | | +| token | str | SToken(V2) | |
查看示例 ```json { - 'data': {'login_ticket': '***', - 'need_realperson': False, - 'reactivate_info': {'required': False, 'ticket': ''}, - 'realname_info': {'action_ticket': '', - 'action_type': '', - 'required': False}, - 'token': {'token': '***', - 'token_type': 1}, - 'user_info': {'account_name': '', - 'aid': '311526738', - 'area_code': '+86', - 'country': '', - 'email': '***@***.****', - 'identity_code': '******************', - 'is_email_verify': 1, - 'links': [{'email': '', - 'nickname': '***', - 'subType': '', - 'thirdparty': 'tp', - 'union_id': '***'}], - 'mid': '0d5cf7piru_mhy', - 'mobile': '***********', - 'realname': '***', - 'rebind_area_code': '', - 'rebind_mobile': '', - 'rebind_mobile_time': '0', - 'safe_area_code': '', - 'safe_mobile': ''}}, - 'message': 'OK', - 'retcode': 0 + "data": { + "login_ticket": "***", + "need_realperson": false, + "reactivate_info": { + "required": false, + "ticket": "" + }, + "realname_info": { + "action_ticket": "", + "action_type": "", + "required": false + }, + "token": { + "token": "***", + "token_type": 1 + }, + "user_info": { + "account_name": "", + "aid": "311526738", + "area_code": "+86", + "country": "", + "email": "**********", + "identity_code": "******************", + "is_email_verify": 1, + "links": [ + { + "email": "", + "nickname": "***", + "subType": "", + "thirdparty": "tp", + "union_id": "***" + } + ], + "mid": "******", + "mobile": "***********", + "realname": "***", + "rebind_area_code": "", + "rebind_mobile": "", + "rebind_mobile_time": "0", + "safe_area_code": "", + "safe_mobile": "" + } + }, + "message": "OK", + "retcode": 0 } ```
diff --git a/hoyolab/login/password_passport.md b/hoyolab/login/password_passport.md index 138ddb5..ef46552 100644 --- a/hoyolab/login/password_passport.md +++ b/hoyolab/login/password_passport.md @@ -3,7 +3,7 @@ - [密码登录](#密码登录) - [操作步骤](#pwd-step) - [申请人机验证任务](#申请人机验证任务) - - [获取 Login Ticket](#获取login-ticket) + - [获取Login Ticket](#获取login-ticket) --- @@ -11,8 +11,8 @@

操作步骤

-1. [申请人机验证任务](#申请人机验证任务),获取 `gt`,`mmt_key` 等任务数据 -2. 使用账号密码 [获取 Login Ticket](#获取login-ticket) +1. [申请人机验证任务](#申请人机验证任务),获取`gt`、`mmt_key`等验证数据 +2. 登录[获取Login Ticket](#获取login-ticket) ### 申请人机验证任务 @@ -24,12 +24,12 @@ _请求方式:GET_ | 字段 | 类型 | 内容 | 备注 | | ---- | ---- | ---- | ---- | -| scene_type | num | 暂不知道具体含义,可直接使用值 `1` | 可参考 [米哈游通行证密码登录页](https://user.mihoyo.com/#/login/password) 使用的值为 `1` | -| now | num | 当前的秒级时间戳 | | -| reason | str | 调用API的网页链接 | 可参考 [米哈游通行证密码登录页](https://user.mihoyo.com/#/login/password) 使用的是 `user.mihoyo.com%2523%252Flogin%252Fpassword`(已进行URL编码) | -| action_type | str | 登陆方式
`login_by_password` 密码登录 | | -| t | num | 当前的秒级时间戳 | | -| account | str | 手机号或邮箱 | | +| scene_type | num | 暂不知道具体含义,可直接使用值 `1` | 可参考[米哈游通行证密码登录页](https://user.mihoyo.com/#/login/password)使用的值为 `1` | +| now | num | 当前的Unix时间戳 | | +| reason | str | 调用API的网页链接 | 可参考[米哈游通行证密码登录页](https://user.mihoyo.com/#/login/password)使用`user.mihoyo.com%2523%252Flogin%252Fpassword`(已进行URL编码) | +| action_type | str | 登录方式
login_by_password 密码登录 | | +| t | num | 当前的Unix时间戳 | | +| account | str | 绑定手机或绑定邮箱 | | **JSON返回:** @@ -45,69 +45,65 @@ _请求方式:GET_ | 字段 | 类型 | 内容 | 备注 | | ---- | ---- | ---- | ---- | | mmt_data | obj | 极验验证任务数据 | | -| mmt_type | num | 验证任务类型
`1` 需要进行人机验证
`0` 无需进行人机验证 | | +| mmt_type | num | 验证任务类型
1 需要进行人机验证
0 无需进行人机验证 | | | msg | str | 返回消息 | | -| scene_type | num | 与URL请求参数中的 `scene_type` 相同 | | -| status | num | 返回码
`1` 成功 | | +| scene_type | num | 与URL请求参数中的`scene_type`相同 | | +| status | num | 返回码
1 成功 | | `data`对象→`mmt_data`对象: | 字段 | 类型 | 内容 | 备注 | | ---- | ---- | ---- | ---- | | mmt_key | str | 验证任务 | 当 `mmt_data` 对象仅包含该字段时,说明不需要进行人机验证,可直接使用该值进行登录 | -| gt | str | 验证ID | 验证ID,即 [极验文档](https://docs.geetest.com/gt4/deploy/server#%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0) 中的`captchaId`,极验后台申请得到 | -| new_captcha | num | 宕机情况下使用 | 一般为 `1` | -| risk_type | str | 结合风控融合,指定验证形式
`slide` 拖动滑块完成拼图 | | -| success | num | 是否成功
`1` 成功 | | -| use_v4 | bool | 是否使用极验第四代适应性验证 | 极验官网:https://www.geetest.com/adaptive-captcha | +| gt | str | 验证ID | 验证ID,即[极验文档](https://docs.geetest.com/gt4/deploy/server#%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0)中的`captchaId`,通常为服务器申请得到 | +| new_captcha | num | 极验验证码相关的参数,是否为新验证码类型的离线情况下使用 | 一般为 `1` | +| risk_type | str | 结合风控融合,指定验证形式
slide 拖动滑块完成拼图 | | +| success | num | 是否成功
1 成功 | | +| use_v4 | bool | 是否使用[极验第4代适应性验证](https://www.geetest.com/adaptive-captcha) | | **备注:** - 一般来说,密码登录基本上都不会被要求人机验证(但是谁知道呢) -- 通常首次申请验证任务返回的 `mmt_data` 对象只会包含 `mmt_key`,不会返回 `gt` 等其他字段,这说明不需要进行人机验证,可直接使用 `mmt_key` 字段值进行登录(也可通过 `mmt_type` 判断) -- JSON返回数据的 `mmt_data` 对象中一些字段说明参考自 [极验官方文档](https://docs.geetest.com/gt4/apirefer/api/web) +- 通常首次申请验证任务返回的`mmt_data`对象只会包含`mmt_key`,不会返回`gt`等其他字段,这说明不需要进行人机验证,可直接使用`mmt_key`字段值进行登录(也可通过`mmt_type`判断) +- JSON返回数据的`mmt_data`对象中一些字段说明参考自[极验官方文档](https://docs.geetest.com/gt4/apirefer/api/web)
查看示例 -- 请求:`https://webapi.account.mihoyo.com/Api/create_mmt?scene_type=1&now=1691855137471&reason=user.mihoyo.com%23%2Flogin%2Fpassword&action_type=login_by_password&account=<你的账户>&t=1691855137471` -- 返回: - - 无需进行人机验证的情况: - ```json - { - "code": 200, - "data": { - "mmt_data": { - "mmt_key": "nAZzNc45p76J85nz3PRV6tjGp0SX9TDc" - }, - "mmt_type": 0, - "msg": "成功", - "scene_type": 1, - "status": 1 - } - } - ``` - - 需要进行人机验证的情况: - ```json - { - "code": 200, - "data": { - "mmt_data": { - "gt": "0b3dbaab0ad3f8344ab45342c3f3d909", - "mmt_key": "3hfbcdJd5K9g23Fu0hRFA7DDDRRzKJdC", - "new_captcha": 1, - "risk_type": "slide", - "success": 1, - "use_v4": true - }, - "mmt_type": 1, - "msg": "成功", - "scene_type": 1, - "status": 1 - } - } - ``` +```json +// 无需进行验证时: +{ + "code": 200, + "data": { + "mmt_data": { + "mmt_key": "nAZzNc45p76J85nz3PRV6tjGp0SX9TDc" + }, + "mmt_type": 0, + "msg": "成功", + "scene_type": 1, + "status": 1 + } +} +// 需要进行验证时 +{ + "code": 200, + "data": { + "mmt_data": { + "gt": "0b3dbaab0ad3f8344ab45342c3f3d909", + "mmt_key": "3hfbcdJd5K9g23Fu0hRFA7DDDRRzKJdC", + "new_captcha": 1, + "risk_type": "slide", + "success": 1, + "use_v4": true + }, + "mmt_type": 1, + "msg": "成功", + "scene_type": 1, + "status": 1 + } +} +```
### 获取Login Ticket @@ -116,7 +112,7 @@ _请求方式:POST_ `https://webapi.account.mihoyo.com/Api/login_by_password` -**参数:** +**JSON请求:** | 字段 | 类型 | 内容 | 备注 | | ---- | ---- | ---- | ---- | @@ -168,25 +164,25 @@ def rsa_encrypt(message): | ---- | ---- | ---- | ---- | | account_info | obj | 账号信息 | | | msg | str | 返回消息 | | -| status | num | 返回码
`1` 成功 | | +| status | num | 返回码
1 成功 | | `data`对象→`account_info`对象: | 字段 | 类型 | 内容 | 备注 | | ---- | ---- | ---- | ---- | | account_id | num | 米游社账号ID | | -| area_code | str | 绑定手机的国家区号 | 如 `+86` | -| create_time | num | 账号注册时间的Unix时间戳 | 该值的中间部分将以星号隐藏 | -| email | str | 邮箱 | 该值的中间部分将以星号隐藏 | -| identity_code | str | 身份证号 | | -| is_adult | num | 用户是否为成人
`1` 是 | | -| is_email_verify | num | 是否已验证邮箱
`1` 是 | | -| mobile | str | 手机号 | 该值的中间部分将以星号隐藏 | -| real_name | str | 真实姓名 | 该值的中间部分将以星号隐藏 | -| safe_area_code | str | 绑定手机的国家区号 | 如 `+86` | -| safe_level | num | 安全级别 | 该账号的安全级别
3 高 | -| safe_mobile | str | 绑定手机 | 该值的中间部分将以星号隐藏 | -| weblogin_token | str | 即Cookie中的 Login Ticket 字段 | 该字段也将出现在响应Cookie中 | +| area_code | str | 绑定手机的国家区号 | | +| create_time | num | 账号注册时间的Unix时间戳 | | +| email | str | 账号的绑定邮箱 | 该值的中间部分将以星号隐藏 | +| identity_code | str | 账号实名认证的身份证号 | | +| is_adult | num | 实名认证对应信息是否为成年
1 是 | | +| is_email_verify | num | 绑定邮箱是否已验证
1 是 | | +| mobile | str | 账号的绑定手机 | 该值的中间部分将以星号隐藏 | +| real_name | str | 账号实名认证的真实姓名 | 该值的中间部分将以星号隐藏 | +| safe_area_code | str | 安全手机的国家区号 | 该字段已弃用 | +| safe_level | num | 安全级别 | 该账号的安全级别
3 高 | +| safe_mobile | str | 账号的安全手机 | 该字段已弃用 | +| weblogin_token | str | Login Ticket | 该字段也将出现在响应头的`Set-Cookie`字段中 | **备注:** @@ -194,31 +190,30 @@ def rsa_encrypt(message):
查看示例 -- 返回: - ```json - { - "code": 200, - "data": { - "account_info": { - "account_id": 123456789, - "area_code": "+86", - "create_time": 1614948789, - "email": "user****mail@mail.com", - "identity_code": "111************000", - "is_adult": 1, - "is_email_verify": 1, - "mobile": "181****8888", - "real_name": "**川", - "safe_area_code": "+86", - "safe_level": 3, - "safe_mobile": "181****8888", - "weblogin_token": "QDDgghjghHydhdxyduf875UIDYDYq" - }, - "msg": "成功", - "status": 1 - } +```json +{ + "code": 200, + "data": { + "account_info": { + "account_id": 123456789, + "area_code": "+86", + "create_time": 1614948789, + "email": "user****mail@mail.com", + "identity_code": "111************000", + "is_adult": 1, + "is_email_verify": 1, + "mobile": "181****8888", + "real_name": "**川", + "safe_area_code": "+86", + "safe_level": 3, + "safe_mobile": "181****8888", + "weblogin_token": "QDDgghjghHydhdxyduf875UIDYDYq" + }, + "msg": "成功", + "status": 1 } - ``` +} +```
diff --git a/hoyolab/login/qrcode_hoyolab.md b/hoyolab/login/qrcode_hoyolab.md index 22d8f95..9b925d6 100644 --- a/hoyolab/login/qrcode_hoyolab.md +++ b/hoyolab/login/qrcode_hoyolab.md @@ -13,7 +13,7 @@ 1. [生成二维码](#生成二维码),记录返回`data`对象的`url`,和`data`对象的`ticket`字段(下称`ticket`)。 2. 生成二维码供用户扫描。 -3. 不断[查询二维码扫描状态](#查询二维码扫描状态)。在用户扫描并确认登录后,获取请求头中所有`Set-Cookie`。可获取的Cookie有:Account ID、MiHoYo id、LToken、特定Cookie Token。 +3. 不断[查询二维码扫描状态](#查询二维码扫描状态)。在用户扫描并确认登录后,获取响应头中所有`Set-Cookie`。可获取的Cookie有:Account ID、MiHoYo id、LToken(V2)、特定Cookie Token。 ### 生成二维码 @@ -112,50 +112,50 @@ _请求方式:POST_ ```json // 未扫描 { - "retcode": 0, - "message": "OK", - "data": { - "status": "Created", - "app_id": "bll8iq97cem8", - "client_type": 4, - "created_at": "1693555708", - "scanned_at": "0", - "tokens": [], - "user_info": null, - "realname_info": null, - "need_realperson": false - } + "retcode": 0, + "message": "OK", + "data": { + "status": "Created", + "app_id": "bll8iq97cem8", + "client_type": 4, + "created_at": "1693555708", + "scanned_at": "0", + "tokens": [], + "user_info": null, + "realname_info": null, + "need_realperson": false + } } // 已扫描 { - "retcode": 0, - "message": "OK", - "data": { - "status": "Scanned", - "app_id": "bll8iq97cem8", - "client_type": 4, - "created_at": "1693555708", - "scanned_at": "1693555708", - "tokens": [], - "user_info": null, - "realname_info": null, - "need_realperson": false - } + "retcode": 0, + "message": "OK", + "data": { + "status": "Scanned", + "app_id": "bll8iq97cem8", + "client_type": 4, + "created_at": "1693555708", + "scanned_at": "1693555708", + "tokens": [], + "user_info": null, + "realname_info": null, + "need_realperson": false + } } // 已过期 { - "data": null, - "message": "二维码已失效,请刷新后重新扫描", - "retcode": -3501 + "data": null, + "message": "二维码已失效,请刷新后重新扫描", + "retcode": -3501 } //取消扫码 { - "data": null, - "message": "扫码登录已取消,重新生成二维码", - "retcode": -3505 + "data": null, + "message": "扫码登录已取消,重新生成二维码", + "retcode": -3505 } // 已确认 diff --git a/hoyolab/user/token.md b/hoyolab/user/token.md index b61f02f..5a7d8f3 100644 --- a/hoyolab/user/token.md +++ b/hoyolab/user/token.md @@ -3,7 +3,7 @@ - [Token](#token) - [通过Login Ticket获取SToken(V1)和LToken(V1)](#通过login-ticket获取stokenv1和ltokenv1) - [通过SToken获取Cookie Token](#通过stoken获取cookie-token) - - [通过Game Token获取SToken(V1)](#通过game-token获取stokenv1) + - [通过Game Token获取SToken(V1)]通过game-token获取stokenv1) - [通过Game Token获取Cookie Token](#通过game-token获取cookie-token) - [通过Cookie Token获取Hk4e Token](#通过cookie-token获取hk4e-token) - [通过SToken(V1)获取SToken(V2)](#通过stokenv1获取stokenv2) diff --git a/other/id.md b/other/id.md index 5e5d2c3..6bdd1f9 100644 --- a/other/id.md +++ b/other/id.md @@ -190,6 +190,7 @@ | 标识符 | 游戏 | 服务器 | 备注 | | ----- | ---- | ----- | ---- | +| bbs_cn | 米游社 | 国服 | | | hk4e_cn | 原神 | 国服 | | | hk4e_global | 原神 | 国际服 | | | hkrpg_cn | 崩坏:星穹铁道 | 国服 | |