From 1e83d97283cb43f7393577908aa0c695c54db6d5 Mon Sep 17 00:00:00 2001 From: czn20 <2583080860@qq.com> Date: Mon, 4 Sep 2023 17:45:42 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E5=AF=86=E7=A0=81=E9=80=9A=E8=BF=87=E7=B1=B3=E6=B8=B8=E7=A4=BE?= =?UTF-8?q?=E7=9A=84api=E8=8E=B7=E5=8F=96=E7=99=BB=E5=BD=95=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E5=B9=B6=E5=92=8C=E4=BD=BF=E7=94=A8=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E9=80=9A=E8=BF=87=E7=B1=B3=E5=93=88=E6=B8=B8=E9=80=9A=E8=A1=8C?= =?UTF-8?q?=E8=AF=81=E7=9A=84api=E8=8E=B7=E5=8F=96=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=8A=A0=E4=BB=A5=E5=8C=BA=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hoyolab/login/password_hoyolab.md | 173 ++++++++++++++++++ .../{password.md => password_passport.md} | 2 +- 2 files changed, 174 insertions(+), 1 deletion(-) create mode 100644 hoyolab/login/password_hoyolab.md rename hoyolab/login/{password.md => password_passport.md} (99%) diff --git a/hoyolab/login/password_hoyolab.md b/hoyolab/login/password_hoyolab.md new file mode 100644 index 0000000..e69cf11 --- /dev/null +++ b/hoyolab/login/password_hoyolab.md @@ -0,0 +1,173 @@ +# 米游社密码登录 + +- [密码登录](#密码登录) + - [操作步骤](#操作步骤) + - [获取设备指纹信息(device_fp)](#获取设备指纹信息) + - [发送登录请求](#发送登录请求) + +--- + +## 密码登录 + +### 操作步骤 + +1. [获取设备指纹信息](#获取设备指纹信息),记录返回`data`对象的`device_fp。 +2. 向服务器传入账号密码以获取登录信息。 + +### 获取设备指纹信息 + +**国服:** + +_请求方式:POST_ + +`https://public-data-api.mihoyo.com/device-fp/api/getFp` + +**JSON请求:** + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ----------------------------------- | --------------------------------------------------------- | +| 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 字段,其中必须包含 userAgent 字段 | + +**JSON 返回:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | --------------- | ---- | +| retcode | num | 返回码 | -502 传入的内容有误 | +| message | str | 返回消息 | | +| data | obj | 设备指纹 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | ------------------ | ------------------- | +| device_fp | str | 设备指纹 | | +| code | num | 回传的http状态码 | | +| msg | str | 错误消息 | | + +
+查看示例 + +```json +{ + 'data':{ + 'code': 200, + 'device_fp': 'ui33vcedffou', + 'msg': 'ok' + }, + 'message': 'OK', + 'retcode': 0 +} +``` + +
+ +### 获取登录信息 + +**国服:** + +_请求方式:POST_ + +> _需要验证请求头_ +> +> `x-rpc-app_id`:`bll8iq97cem8` +> +> `x-rpc-client_type`:`2` +> +> `x-rpc-game_biz`:`bbs_cn` +> +> `x-rpc-device_fp` +> +> `x-rpc-device_id` +> +> *其中`x-rpc-device_fp`的值为刚才获取的`device_fp`的值* + +`https://passport-api.mihoyo.com/account/ma-cn-passport/app/loginByPassword` + +**JSON请求:** + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ---- | +| account | str | 要登录的账户 | 使用RSA + Base64加密,加密方式[详见该页面](https://github.com/Error063/mihoyo-api-collect/blob/main/hoyolab/login/password.md#%E8%8E%B7%E5%8F%96login-ticket) | +| password | str | 密码 | 使用RSA + Base64加密,加密方式[详见该页面](https://github.com/Error063/mihoyo-api-collect/blob/main/hoyolab/login/password.md#%E8%8E%B7%E5%8F%96login-ticket) | + +**JSON返回:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ---- | +| retcode | num | 返回码
| | +| message | str | 返回消息 | | +| data | obj | 账户x'x | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ---- | +| login_ticket | str | Login Ticket | | +| need_realperson | str | 是否要求用户进行实名认证 | | +| token | obj | 包含cookie token?的对象 | | +| user_info | obj | 用户信息 | | + +`user_info`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ---- | -------------------------------------------- | ------------ | +| account_name | str | 账户名 | 国服默认为空 | +| aid | str | Account ID | | +| 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 | 用户的真实姓名 | | + +
+查看示例 + +```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 +} +``` +
diff --git a/hoyolab/login/password.md b/hoyolab/login/password_passport.md similarity index 99% rename from hoyolab/login/password.md rename to hoyolab/login/password_passport.md index 750fe77..138ddb5 100644 --- a/hoyolab/login/password.md +++ b/hoyolab/login/password_passport.md @@ -1,4 +1,4 @@ -# 米游社密码登录 +# 米哈游通行证密码登录 - [密码登录](#密码登录) - [操作步骤](#pwd-step) From 7084848fab5dc6dc63ec8531422c85e0613a629f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=82=87=E8=AF=BA?= Date: Mon, 4 Sep 2023 18:11:52 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E4=BA=86=E9=83=A8?= =?UTF-8?q?=E5=88=86=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hoyolab/login/password_hoyolab.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hoyolab/login/password_hoyolab.md b/hoyolab/login/password_hoyolab.md index e69cf11..2cf614d 100644 --- a/hoyolab/login/password_hoyolab.md +++ b/hoyolab/login/password_hoyolab.md @@ -95,8 +95,8 @@ _请求方式:POST_ | 字段 | 类型 | 内容 | 备注 | | ---- | ---- | ---- | ---- | -| account | str | 要登录的账户 | 使用RSA + Base64加密,加密方式[详见该页面](https://github.com/Error063/mihoyo-api-collect/blob/main/hoyolab/login/password.md#%E8%8E%B7%E5%8F%96login-ticket) | -| password | str | 密码 | 使用RSA + Base64加密,加密方式[详见该页面](https://github.com/Error063/mihoyo-api-collect/blob/main/hoyolab/login/password.md#%E8%8E%B7%E5%8F%96login-ticket) | +| account | str | 要登录的账户 | 使用RSA + Base64加密,加密方式[详见该页面](https://github.com/Error063/mihoyo-api-collect/blob/main/hoyolab/login/password_passport.md#%E8%8E%B7%E5%8F%96login-ticket) | +| password | str | 密码 | 使用RSA + Base64加密,加密方式[详见该页面](https://github.com/Error063/mihoyo-api-collect/blob/main/hoyolab/login/password_passport.md.md#%E8%8E%B7%E5%8F%96login-ticket) | **JSON返回:** @@ -106,7 +106,7 @@ _请求方式:POST_ | ---- | ---- | ---- | ---- | | retcode | num | 返回码
| | | message | str | 返回消息 | | -| data | obj | 账户x'x | | +| data | obj | 账户信息| | `data`对象: From 015ee964ee6f1eb066e513ce6cd4d67feda348f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=82=87=E8=AF=BA?= Date: Mon, 4 Sep 2023 20:01:07 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E9=83=A8?= =?UTF-8?q?=E5=88=86=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hoyolab/login/password_hoyolab.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hoyolab/login/password_hoyolab.md b/hoyolab/login/password_hoyolab.md index 2cf614d..2874645 100644 --- a/hoyolab/login/password_hoyolab.md +++ b/hoyolab/login/password_hoyolab.md @@ -95,8 +95,8 @@ _请求方式:POST_ | 字段 | 类型 | 内容 | 备注 | | ---- | ---- | ---- | ---- | -| account | str | 要登录的账户 | 使用RSA + Base64加密,加密方式[详见该页面](https://github.com/Error063/mihoyo-api-collect/blob/main/hoyolab/login/password_passport.md#%E8%8E%B7%E5%8F%96login-ticket) | -| password | str | 密码 | 使用RSA + Base64加密,加密方式[详见该页面](https://github.com/Error063/mihoyo-api-collect/blob/main/hoyolab/login/password_passport.md.md#%E8%8E%B7%E5%8F%96login-ticket) | +| account | str | 要登录的账户 | 使用RSA + Base64加密,加密方式[详见该页面](hoyolab/login/password_passport.md#%E8%8E%B7%E5%8F%96login-ticket) | +| password | str | 密码 | 使用RSA + Base64加密,加密方式[详见该页面](hoyolab/login/password_passport.md.md#%E8%8E%B7%E5%8F%96login-ticket) | **JSON返回:** From 1171f6d91209477759638a8867928a652e3d96b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=82=87=E8=AF=BA?= Date: Mon, 4 Sep 2023 20:20:22 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BA=86=E5=AF=B9?= =?UTF-8?q?=E6=8B=93=E5=B1=95=E5=AD=97=E6=AE=B5=E7=9A=84=E8=A7=A3=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hoyolab/login/password_hoyolab.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hoyolab/login/password_hoyolab.md b/hoyolab/login/password_hoyolab.md index 2874645..3b6e768 100644 --- a/hoyolab/login/password_hoyolab.md +++ b/hoyolab/login/password_hoyolab.md @@ -29,10 +29,10 @@ _请求方式:POST_ | device_id | str | 设备id | | | seed_id | str | 种子id | 可随机生成 | | seed_time | str | 当前UNIX时间戳 | | -| platform | str | 设备平台 | 不同的设备平台需要包含的请求内容不同 | +| platform | str | 设备平台 | 不同的设备平台需要包含的拓展字段内容不同 | | device_fp | str | 设备指纹信息 | 可随机生成 | | app_name | str | 请求的应用名称
bbs_cn 米游社 | | -| ext_fields | str | 拓展字段 | 为使用字符串包裹的 json 字段,其中必须包含 userAgent 字段 | +| 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']字段 | **JSON 返回:**