From d31c3acf049d79a9bed78aee4654d0b7e0011c10 Mon Sep 17 00:00:00 2001
From: Error063 <2583080860@QQ.COM>
Date: Sat, 12 Aug 2023 23:59:28 +0800
Subject: [PATCH 1/8] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AF=86=E7=A0=81?=
=?UTF-8?q?=E7=99=BB=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
hoyolab/login/password.md | 228 ++++++++++++++++++++++++++++++++++++++
1 file changed, 228 insertions(+)
create mode 100644 hoyolab/login/password.md
diff --git a/hoyolab/login/password.md b/hoyolab/login/password.md
new file mode 100644
index 0000000..4c98cfd
--- /dev/null
+++ b/hoyolab/login/password.md
@@ -0,0 +1,228 @@
+# 米游社密码登录
+
+- [密码登录](#密码登录)
+ - [操作步骤](#sms-step)
+ - [申请人机验证任务](#申请人机验证任务)
+ - [获取 Login Ticket](#获取login-ticket)
+
+---
+
+## 密码登录
+
+
操作步骤
+
+1. [申请人机验证任务](#申请人机验证任务),获取 `gt`,`mmt_key` 等任务数据
+2. 使用任务数据完成人机验证,得到 `geetest_v4_data` 验证结果数据(参考:https://docs.geetest.com/gt4/apirefer/api/web )
+4. 使用账号密码 [获取 Login Ticket](#获取login-ticket)
+
+### 申请人机验证任务
+
+_请求方式:GET_
+
+`https://webapi.account.mihoyo.com/Api/create_mmt`
+
+**参数:**
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | ---- | ---- |
+| 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 | 要登录的账户 | |
+
+**JSON返回:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | ---- | ---- |
+| code | num | 返回码 | |
+| data | obj | 返回数据 | |
+
+`data`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | ---- | ---- |
+| mmt_data | obj | 极验验证任务数据 | |
+| mmt_type | num | 验证任务类型
`1` 需要进行人机验证
`0` 无需进行人机验证 | |
+| msg | str | 返回消息 | |
+| scene_type | num | 与URL请求参数中的 `scene_type` 相同 | |
+| status | num | 返回码
`1` 成功 | |
+
+`data`对象→`mmt_data`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | ---- | ---- |
+| mmt_key | str | 验证任务 | 当 `mmt_data` 对象仅包含该字段时,说明不需要进行人机验证,可直接使用该值进行登录 |
+| gt | obj | 验证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 |
+
+**备注:**
+
+- 通常首次申请验证任务返回的 `mmt_data` 对象只会包含 `mmt_key`,不会返回 `gt` 等其他字段,这说明不需要进行人机验证,可直接使用 `mmt_key` 字段值调用短信验证码发送API(也可通过 `mmt_type` 判断)
+- JSON返回数据的 `mmt_data` 对象中一些字段说明参考自 [极验官方文档](https://docs.geetest.com/gt4/apirefer/api/web)
+- 在2023年5月左右[米哈游通行证验证码登录页](https://user.mihoyo.com/#/login/captcha)从极验GT3升级至GT4,目前 [短信验证码发送](#发送短信验证码) 接口不再支持GT3验证结果,因此文档不包含GT3验证结果的使用方法
+
+
+查看示例
+
+- 请求:`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
+ }
+ }
+ ```
+
+
+
+### 获取Login Ticket
+
+_请求方式:POST_
+
+`https://webapi.account.mihoyo.com/Api/login_by_password`
+
+**参数:**
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | ---- | ---- |
+| account | str | 要登录的账户 | |
+| password | str | 密码(使用RSA + Base64加密) | 见下 |
+| is_crypto | bool | 是否被加密 | 应该填true,否则无法通过 |
+| source | str | 登录操作来源 | 可参考 [米哈游通行证验证码登录页](https://user.mihoyo.com/#/login/captcha) 使用的是 `user.mihoyo.com` |
+| t | num | 当前的秒级时间戳 | |
+
+注:
+
+需要的RSA公钥:
+
+```
+-----BEGIN PUBLIC KEY-----
+MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDvekdPMHN3AYhm/vktJT+YJr7\ncI5DcsNKqdsx5DZX0gDuWFuIjzdwButrIYPNmRJ1G8ybDIF7oDW2eEpm5sMbL9zs\n9ExXCdvqrn51qELbqj0XxtMTIpaCHFSI50PfPpTFV9Xt/hmyVwokoOXFlAEgCn+Q\nCgGs52bFoYMtyi+xEQIDAQAB
+-----END PUBLIC KEY-----
+```
+
+加密的示例代码如下(Python,需要安装pycryptodome库)
+
+```python
+from Crypto.PublicKey import RSA
+from Crypto.Cipher import PKCS1_v1_5 as Cipher_pkcs1_v1_5
+import base64
+
+public_key = '''-----BEGIN PUBLIC KEY-----
+MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDvekdPMHN3AYhm/vktJT+YJr7\ncI5DcsNKqdsx5DZX0gDuWFuIjzdwButrIYPNmRJ1G8ybDIF7oDW2eEpm5sMbL9zs\n9ExXCdvqrn51qELbqj0XxtMTIpaCHFSI50PfPpTFV9Xt/hmyVwokoOXFlAEgCn+Q\nCgGs52bFoYMtyi+xEQIDAQAB
+-----END PUBLIC KEY-----'''
+
+def rsa_encrypt(message):
+ cipher = Cipher_pkcs1_v1_5.new(RSA.importKey(public_key))
+ cipher_text = base64.b64encode(cipher.encrypt(message.encode())).decode()
+ return cipher_text
+```
+
+
+
+**JSON返回:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | ---- | ---- |
+| code | num | 返回码 | |
+| data | obj | 返回数据 | |
+
+`data`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | ---- | ---- |
+| account_info | obj | 账号信息 | |
+| msg | str | 返回消息 | |
+| status | num | 返回码
`1` 成功 | |
+
+`data`对象→`account_info`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | ---- | ---- |
+| account_id | num | 通行证ID | |
+| area_code | str | 手机号区号 | 如 `+86` |
+| create_time | num | 注册日期 | 格式为秒级时间戳 |
+| 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中 |
+
+**备注:**
+
+- 可直接从响应Cookie中获取 Login Ticket
+
+
+查看示例
+
+- 请求:`https://webapi.account.mihoyo.com/Api/create_mobile_captcha?mobile=18199998888&mobile_captcha=834265&source=user.mihoyo.com&t=1691827148574`
+- 返回:
+ ```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": "QDDFDSOykvnoXXXXXihEghhWDssd2efsdSDryCq"
+ },
+ "msg": "成功",
+ "status": 1
+ }
+ }
+ ```
+
+
From 9165d048b4222b15a64ba9786dd5e282cb45ec05 Mon Sep 17 00:00:00 2001
From: Error063 <2583080860@QQ.COM>
Date: Sun, 13 Aug 2023 00:09:54 +0800
Subject: [PATCH 2/8] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AF=86=E7=A0=81?=
=?UTF-8?q?=E7=99=BB=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
hoyolab/login/password.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/hoyolab/login/password.md b/hoyolab/login/password.md
index 4c98cfd..c5f6e02 100644
--- a/hoyolab/login/password.md
+++ b/hoyolab/login/password.md
@@ -1,7 +1,7 @@
# 米游社密码登录
- [密码登录](#密码登录)
- - [操作步骤](#sms-step)
+ - [操作步骤](#pwd-step)
- [申请人机验证任务](#申请人机验证任务)
- [获取 Login Ticket](#获取login-ticket)
@@ -9,7 +9,7 @@
## 密码登录
-操作步骤
+操作步骤
1. [申请人机验证任务](#申请人机验证任务),获取 `gt`,`mmt_key` 等任务数据
2. 使用任务数据完成人机验证,得到 `geetest_v4_data` 验证结果数据(参考:https://docs.geetest.com/gt4/apirefer/api/web )
@@ -122,8 +122,8 @@ _请求方式:POST_
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| account | str | 要登录的账户 | |
-| password | str | 密码(使用RSA + Base64加密) | 见下 |
-| is_crypto | bool | 是否被加密 | 应该填true,否则无法通过 |
+| password | str | 密码 | 要么使用RSA + Base64加密,要么不加密,公钥和示例代码见下 |
+| is_crypto | bool | 是否被加密 | 如果加密了密码填true,否则为false |
| source | str | 登录操作来源 | 可参考 [米哈游通行证验证码登录页](https://user.mihoyo.com/#/login/captcha) 使用的是 `user.mihoyo.com` |
| t | num | 当前的秒级时间戳 | |
From 8f896019b84fd5ffeaa02b5ed424fef36b2fb65e Mon Sep 17 00:00:00 2001
From: Error063 <2583080860@QQ.COM>
Date: Sun, 13 Aug 2023 00:16:28 +0800
Subject: [PATCH 3/8] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E5=AF=86?=
=?UTF-8?q?=E7=A0=81=E7=99=BB=E5=BD=95=E7=9A=84=E9=83=A8=E5=88=86=E9=97=AE?=
=?UTF-8?q?=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
hoyolab/login/password.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/hoyolab/login/password.md b/hoyolab/login/password.md
index c5f6e02..db8b4b8 100644
--- a/hoyolab/login/password.md
+++ b/hoyolab/login/password.md
@@ -64,7 +64,8 @@ _请求方式:GET_
**备注:**
-- 通常首次申请验证任务返回的 `mmt_data` 对象只会包含 `mmt_key`,不会返回 `gt` 等其他字段,这说明不需要进行人机验证,可直接使用 `mmt_key` 字段值调用短信验证码发送API(也可通过 `mmt_type` 判断)
+- 一般来说,密码登录基本上都不会被要求人机验证(但是谁知道呢)
+- 通常首次申请验证任务返回的 `mmt_data` 对象只会包含 `mmt_key`,不会返回 `gt` 等其他字段,这说明不需要进行人机验证,可直接使用 `mmt_key` 字段值进行登录(也可通过 `mmt_type` 判断)
- JSON返回数据的 `mmt_data` 对象中一些字段说明参考自 [极验官方文档](https://docs.geetest.com/gt4/apirefer/api/web)
- 在2023年5月左右[米哈游通行证验证码登录页](https://user.mihoyo.com/#/login/captcha)从极验GT3升级至GT4,目前 [短信验证码发送](#发送短信验证码) 接口不再支持GT3验证结果,因此文档不包含GT3验证结果的使用方法
From b43dc542230f8dd8bd353cbfd0bef84a2578fc7b Mon Sep 17 00:00:00 2001
From: Error063
Date: Sun, 13 Aug 2023 00:32:52 +0800
Subject: [PATCH 4/8] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=AF=86=E7=A0=81?=
=?UTF-8?q?=E7=99=BB=E5=BD=95=E7=9A=84=E9=83=A8=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.md | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/hoyolab/login/password.md b/hoyolab/login/password.md
index db8b4b8..33ad0c1 100644
--- a/hoyolab/login/password.md
+++ b/hoyolab/login/password.md
@@ -198,8 +198,6 @@ def rsa_encrypt(message):
查看示例
-
-- 请求:`https://webapi.account.mihoyo.com/Api/create_mobile_captcha?mobile=18199998888&mobile_captcha=834265&source=user.mihoyo.com&t=1691827148574`
- 返回:
```json
{
@@ -218,7 +216,7 @@ def rsa_encrypt(message):
"safe_area_code": "+86",
"safe_level": 3,
"safe_mobile": "181****8888",
- "weblogin_token": "QDDFDSOykvnoXXXXXihEghhWDssd2efsdSDryCq"
+ "weblogin_token": "QDDgghjghHydhdxyduf875UIDYDYq"
},
"msg": "成功",
"status": 1
From bb852e33b0907529f17febcac8380ad9909085bc Mon Sep 17 00:00:00 2001
From: Error063
Date: Sun, 13 Aug 2023 00:39:08 +0800
Subject: [PATCH 5/8] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AF=86=E7=A0=81?=
=?UTF-8?q?=E7=99=BB=E5=BD=95=E4=B8=AD=E7=9A=84=E9=83=A8=E5=88=86=E9=94=99?=
=?UTF-8?q?=E8=AF=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
hoyolab/login/password.md | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/hoyolab/login/password.md b/hoyolab/login/password.md
index 33ad0c1..1c13c0a 100644
--- a/hoyolab/login/password.md
+++ b/hoyolab/login/password.md
@@ -12,8 +12,7 @@
操作步骤
1. [申请人机验证任务](#申请人机验证任务),获取 `gt`,`mmt_key` 等任务数据
-2. 使用任务数据完成人机验证,得到 `geetest_v4_data` 验证结果数据(参考:https://docs.geetest.com/gt4/apirefer/api/web )
-4. 使用账号密码 [获取 Login Ticket](#获取login-ticket)
+2. 使用账号密码 [获取 Login Ticket](#获取login-ticket)
### 申请人机验证任务
@@ -67,7 +66,6 @@ _请求方式:GET_
- 一般来说,密码登录基本上都不会被要求人机验证(但是谁知道呢)
- 通常首次申请验证任务返回的 `mmt_data` 对象只会包含 `mmt_key`,不会返回 `gt` 等其他字段,这说明不需要进行人机验证,可直接使用 `mmt_key` 字段值进行登录(也可通过 `mmt_type` 判断)
- JSON返回数据的 `mmt_data` 对象中一些字段说明参考自 [极验官方文档](https://docs.geetest.com/gt4/apirefer/api/web)
-- 在2023年5月左右[米哈游通行证验证码登录页](https://user.mihoyo.com/#/login/captcha)从极验GT3升级至GT4,目前 [短信验证码发送](#发送短信验证码) 接口不再支持GT3验证结果,因此文档不包含GT3验证结果的使用方法
查看示例
@@ -125,7 +123,7 @@ _请求方式:POST_
| account | str | 要登录的账户 | |
| password | str | 密码 | 要么使用RSA + Base64加密,要么不加密,公钥和示例代码见下 |
| is_crypto | bool | 是否被加密 | 如果加密了密码填true,否则为false |
-| source | str | 登录操作来源 | 可参考 [米哈游通行证验证码登录页](https://user.mihoyo.com/#/login/captcha) 使用的是 `user.mihoyo.com` |
+| source | str | 登录操作来源 | 可参考 [米哈游通行证密码登录页](https://user.mihoyo.com/#/login/password) 使用的是 `user.mihoyo.com` |
| t | num | 当前的秒级时间戳 | |
注:
From 0cdb9af434d71e0e7db189914ec2157a08970b8d Mon Sep 17 00:00:00 2001
From: Error063
Date: Sun, 13 Aug 2023 00:41:55 +0800
Subject: [PATCH 6/8] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E5=AF=86?=
=?UTF-8?q?=E7=A0=81=E7=99=BB=E5=BD=95=E4=B8=AD=E7=9A=84=E9=83=A8=E5=88=86?=
=?UTF-8?q?=E9=94=99=E8=AF=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
hoyolab/login/password.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/hoyolab/login/password.md b/hoyolab/login/password.md
index 1c13c0a..2283757 100644
--- a/hoyolab/login/password.md
+++ b/hoyolab/login/password.md
@@ -120,6 +120,7 @@ _请求方式:POST_
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
+| mmt_key | str | 验证任务 | |
| account | str | 要登录的账户 | |
| password | str | 密码 | 要么使用RSA + Base64加密,要么不加密,公钥和示例代码见下 |
| is_crypto | bool | 是否被加密 | 如果加密了密码填true,否则为false |
From cb3b611a2595e11615c44027f2525eca46bc827f Mon Sep 17 00:00:00 2001
From: Error063
Date: Sun, 13 Aug 2023 00:46:14 +0800
Subject: [PATCH 7/8] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E5=AF=86?=
=?UTF-8?q?=E7=A0=81=E7=99=BB=E5=BD=95=E4=B8=AD=E7=9A=84=E9=83=A8=E5=88=86?=
=?UTF-8?q?=E9=94=99=E8=AF=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
hoyolab/login/password.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/hoyolab/login/password.md b/hoyolab/login/password.md
index 2283757..2dd99d0 100644
--- a/hoyolab/login/password.md
+++ b/hoyolab/login/password.md
@@ -198,6 +198,7 @@ def rsa_encrypt(message):
查看示例
- 返回:
+
```json
{
"code": 200,
From f01b64ddb2961e8b3f601649b6f93779b6c313c4 Mon Sep 17 00:00:00 2001
From: Error063
Date: Sun, 13 Aug 2023 08:50:28 +0800
Subject: [PATCH 8/8] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=AF=86=E7=A0=81?=
=?UTF-8?q?=E7=99=BB=E5=BD=95=E7=9A=84=E9=83=A8=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.md | 43 ++++++++++++++++++---------------------
1 file changed, 20 insertions(+), 23 deletions(-)
diff --git a/hoyolab/login/password.md b/hoyolab/login/password.md
index 2dd99d0..0098f38 100644
--- a/hoyolab/login/password.md
+++ b/hoyolab/login/password.md
@@ -29,7 +29,7 @@ _请求方式:GET_
| 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 | 要登录的账户 | |
+| account | str | 手机号或邮箱 | |
**JSON返回:**
@@ -122,20 +122,14 @@ _请求方式:POST_
| ---- | ---- | ---- | ---- |
| mmt_key | str | 验证任务 | |
| account | str | 要登录的账户 | |
-| password | str | 密码 | 要么使用RSA + Base64加密,要么不加密,公钥和示例代码见下 |
-| is_crypto | bool | 是否被加密 | 如果加密了密码填true,否则为false |
+| password | str | 密码(使用RSA + Base64加密或不加密) | |
+| is_crypto | bool | 密码是否被加密 | |
| source | str | 登录操作来源 | 可参考 [米哈游通行证密码登录页](https://user.mihoyo.com/#/login/password) 使用的是 `user.mihoyo.com` |
| t | num | 当前的秒级时间戳 | |
注:
-需要的RSA公钥:
-
-```
------BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDvekdPMHN3AYhm/vktJT+YJr7\ncI5DcsNKqdsx5DZX0gDuWFuIjzdwButrIYPNmRJ1G8ybDIF7oDW2eEpm5sMbL9zs\n9ExXCdvqrn51qELbqj0XxtMTIpaCHFSI50PfPpTFV9Xt/hmyVwokoOXFlAEgCn+Q\nCgGs52bFoYMtyi+xEQIDAQAB
------END PUBLIC KEY-----
-```
+若需加密密码,需要使用的RSA公钥[参见该提议](https://github.com/UIGF-org/mihoyo-api-collect/issues/1)。
加密的示例代码如下(Python,需要安装pycryptodome库)
@@ -145,7 +139,10 @@ from Crypto.Cipher import PKCS1_v1_5 as Cipher_pkcs1_v1_5
import base64
public_key = '''-----BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDvekdPMHN3AYhm/vktJT+YJr7\ncI5DcsNKqdsx5DZX0gDuWFuIjzdwButrIYPNmRJ1G8ybDIF7oDW2eEpm5sMbL9zs\n9ExXCdvqrn51qELbqj0XxtMTIpaCHFSI50PfPpTFV9Xt/hmyVwokoOXFlAEgCn+Q\nCgGs52bFoYMtyi+xEQIDAQAB
+MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDvekdPMHN3AYhm/vktJT+YJr7
+cI5DcsNKqdsx5DZX0gDuWFuIjzdwButrIYPNmRJ1G8ybDIF7oDW2eEpm5sMbL9zs
+9ExXCdvqrn51qELbqj0XxtMTIpaCHFSI50PfPpTFV9Xt/hmyVwokoOXFlAEgCn+Q
+CgGs52bFoYMtyi+xEQIDAQAB
-----END PUBLIC KEY-----'''
def rsa_encrypt(message):
@@ -177,28 +174,28 @@ def rsa_encrypt(message):
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
-| account_id | num | 通行证ID | |
-| area_code | str | 手机号区号 | 如 `+86` |
-| create_time | num | 注册日期 | 格式为秒级时间戳 |
-| email | str | 邮箱 | 将会打码显示 |
-| identity_code | str | 身份证号 | 将会打码显示 |
+| 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 | 绑定手机 | 将会打码显示 |
+| mobile | str | 手机号 | 该值的中间部分将以星号隐藏 |
+| real_name | str | 真实姓名 | 该值的中间部分将以星号隐藏 |
+| safe_area_code | str | 绑定手机的国家区号 | 如 `+86` |
+| safe_level | num | 安全级别 | 该账号的安全级别
3 高 |
+| safe_mobile | str | 绑定手机 | 该值的中间部分将以星号隐藏 |
| weblogin_token | str | 即Cookie中的 Login Ticket 字段 | 该字段也将出现在响应Cookie中 |
**备注:**
-- 可直接从响应Cookie中获取 Login Ticket
+可直接从响应Cookie中获取 Login Ticket
查看示例
- 返回:
-
+
```json
{
"code": 200,