From 153adf5bc42e93f29fa9a6bafb9f41911cd62a3e Mon Sep 17 00:00:00 2001 From: Lo Mu <61622984+LuoRenMu@users.noreply.github.com> Date: Sun, 19 Nov 2023 22:02:40 +0800 Subject: [PATCH 1/4] =?UTF-8?q?add:=20=E6=96=B0=E8=AE=BE=E5=A4=87=E9=AA=8C?= =?UTF-8?q?=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hoyolab/login/password_hoyolab.md | 136 +++++++++++++++++++++++++++++- 1 file changed, 134 insertions(+), 2 deletions(-) diff --git a/hoyolab/login/password_hoyolab.md b/hoyolab/login/password_hoyolab.md index 2af97e8..4407e11 100644 --- a/hoyolab/login/password_hoyolab.md +++ b/hoyolab/login/password_hoyolab.md @@ -4,6 +4,7 @@ - [操作步骤](#操作步骤) - [获取设备指纹(`device_fp`)](#获取设备指纹) - [发送登录请求](#发送登录请求) + - [新设备验证](#新设备登录验证) --- @@ -153,8 +154,8 @@ _请求方式:POST_ | 字段 | 类型 | 内容 | 备注 | | ---- | ---- | ---- | ---- | -| retcode | num | 返回码 | | -| message | str | 返回消息 | | +| retcode | num | 返回码 | -3235新设备登录([需手机短信验证](#新设备登录验证)) | +| message | str | 返回消息 | | | data | obj | 账号信息 | | `data`对象: @@ -243,4 +244,135 @@ _请求方式:POST_ "retcode": 0 } ``` + + +### 新设备登录验证 + + +**国服:** + +前提-->[获取登录信息接口响应头](#获取登录信息): + +`X-Rpc-Verify`: +```json +{ + "action_ticket":"106ffc83feb64f5f9bfa9e0dd1c91dca", + "verify_str": + { + "ticket":"23123433c12e1bf40f2a76bb2", + "verify_type":"2" + } +} +``` + + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ---- | -------------------------------------------- | ------------ | +| action_ticket | str | 待考察 | | + +`verify_str`根对象 +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ---- | -------------------------------------------- | ------------ | +| ticket | str | 用户验证标识符 | 总是为空字符串 | +| verify_type | str | 验证类型 | | + +
+查看示例 + +```text +HTTP/1.1 200 OK +Date: Sun, 19 Nov 2023 10:23:44 GMT +Content-Type: application/json +Content-Length: 138 +Connection: keep-alive +Set-Cookie: aliyungf_tc=###; Path=/; HttpOnly +Access-Control-Expose-Headers: x-rpc-verify +Vary: Origin +Vary: Accept-Encoding +X-Powered-By: takumi +X-Rpc-Verify: {"action_ticket":"106ffc83f123asdzfa9e0dd1c91dca","verify_str":"{\"ticket\":\"23123433c12e1bf40f2a76bb2\",\"verify_type\":\"2\"}"} +X-Trace-Id: 2d79248aa55754e9:2d79248aa55754e9:0:1 + +{"data":null,"message":"您正在新设备上登录,为保障您的账号安全,请先使用手机短信验证身份","retcode":-3235} +```
+ + + +_请求方式:POST_ +`https://passport-api.mihoyo.com/account/ma-cn-verifier/verifier/createMobileCaptchaByActionTicket` +> _需要验证请求头_ +> +> `x-rpc-app_id`:`bll8iq97cem8` +> +> `x-rpc-client_type`:`2` +> +> `x-rpc-game_biz`:`bbs_cn` +> +> `x-rpc-device_fp`:刚获取的设备指纹 +> +> `x-rpc-device_id`:与上个步骤传递的设备ID相同 + +**JSON请求:** + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ---- | +| action_ticket | str | 登录信息响应体中的ticket | | +| action_type | str | 操作 |此处为verify_for_component | + + +
+查看示例 + +```json +{ + "action_ticket":"fbca6ce757964296be7b0d0a3c558c5c", + "action_type":"verify_for_component" +} +``` +
+ + +**JSON返回:** +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ---- | +| retcode | num | 返回码 | 为-3101触发人机验证 | +| message | str | 返回信息 | | + + +
+查看示例 + +```json +{ + "retcode":0, + "message":"OK", + "data":{} +} +``` +
+ + +**触发人机验证:** + +**响应头** +[极验文档](https://docs.geetest.com/gt4/deploy/server#%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0) + +`X-Rpc-Aigis`: +```json +{ + "session_id":"12131231231aa028d9c", + "mmt_type":1, + "data": + { + "success":1, + "gt":"123123123123123b162892", + "challenge":"123123123123ea064ed3a76", + "new_captcha":1 + } +} +``` + + + + From 581bb706ca49468fe090913c02d3d24bbb7992d8 Mon Sep 17 00:00:00 2001 From: Lo Mu <61622984+LuoRenMu@users.noreply.github.com> Date: Sun, 19 Nov 2023 23:11:02 +0800 Subject: [PATCH 2/4] add: verifier code and login info Api --- hoyolab/login/password_hoyolab.md | 75 ++++++++++++++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) diff --git a/hoyolab/login/password_hoyolab.md b/hoyolab/login/password_hoyolab.md index 4407e11..c488ca4 100644 --- a/hoyolab/login/password_hoyolab.md +++ b/hoyolab/login/password_hoyolab.md @@ -268,7 +268,7 @@ _请求方式:POST_ | 字段 | 类型 | 内容 | 备注 | | --------------- | ---- | -------------------------------------------- | ------------ | -| action_ticket | str | 待考察 | | +| action_ticket | str | 设备通过后用于请求获取用户登录信息 | | `verify_str`根对象 | 字段 | 类型 | 内容 | 备注 | @@ -279,6 +279,7 @@ _请求方式:POST_
查看示例 +只需要 X-Rpc-Verify 字段内容 ```text HTTP/1.1 200 OK Date: Sun, 19 Nov 2023 10:23:44 GMT @@ -373,6 +374,78 @@ _请求方式:POST_ } ``` +#### 设备验证请求 +_请求方式:post_ +`https://passport-api.mihoyo.com/account/ma-cn-verifier/verifier/verifyActionTicketPartly` + +*json请求* + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ---- | +| action_ticket | str | 响应体获取的ticket | | +| action_type | str | 操作 |此处为verify_for_component | +| verify_method | num | 验证模式 | 此处参考米游社为1 | +| mobile_captcha | str | 设备接收到的验证码 | | + + +
+查看示例 + +```json +{ + "action_ticket":"23123433c12e1bf40f2a76bb2", + "action_type":"verify_for_component", + "verify_method":1, + "mobile_captcha":"980243" +} +``` +
+ + +**JSON返回:** +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ---- | +| retcode | num | 返回码 | 为-3101触发人机验证 | +| message | str | 返回信息 | | + + +
+查看示例 + +```json +{ + "retcode":0, + "message":"OK", + "data":{} +} +``` +
+ + +#### 通过Ticket获取登录信息 +_请求方式:post_ +https://passport-api.mihoyo.com/account/ma-cn-passport/app/checkRiskVerified + +**json请求** + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ---- | +| action_ticket | str | 响应体获取获取的action_ticket | | + +
+查看示例 + +```json +{ + "action_ticket":"106ffc83f123asdzfa9e0dd1c91dca" +} +``` +
+ +**JSON返回:** + +与[获取登录信息](#获取登录信息)一致 + From 4c1177fb26d8b90a9510b448f773e895b81d4dca Mon Sep 17 00:00:00 2001 From: Lo Mu <61622984+LuoRenMu@users.noreply.github.com> Date: Mon, 20 Nov 2023 19:12:53 +0800 Subject: [PATCH 3/4] Change: text format --- hoyolab/login/password_hoyolab.md | 47 ++++++++++++++++--------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/hoyolab/login/password_hoyolab.md b/hoyolab/login/password_hoyolab.md index c488ca4..c2871f8 100644 --- a/hoyolab/login/password_hoyolab.md +++ b/hoyolab/login/password_hoyolab.md @@ -251,9 +251,9 @@ _请求方式:POST_ **国服:** -前提-->[获取登录信息接口响应头](#获取登录信息): +前提->[获取登录信息接口响应头](#获取登录信息)(在recode返回-3235时): -`X-Rpc-Verify`: +`x-rpc-verify`: ```json { "action_ticket":"106ffc83feb64f5f9bfa9e0dd1c91dca", @@ -273,28 +273,28 @@ _请求方式:POST_ `verify_str`根对象 | 字段 | 类型 | 内容 | 备注 | | --------------- | ---- | -------------------------------------------- | ------------ | -| ticket | str | 用户验证标识符 | 总是为空字符串 | +| ticket | str | 用户验证标识符 | | | verify_type | str | 验证类型 | |
查看示例 -只需要 X-Rpc-Verify 字段内容 -```text -HTTP/1.1 200 OK -Date: Sun, 19 Nov 2023 10:23:44 GMT -Content-Type: application/json -Content-Length: 138 -Connection: keep-alive -Set-Cookie: aliyungf_tc=###; Path=/; HttpOnly -Access-Control-Expose-Headers: x-rpc-verify -Vary: Origin -Vary: Accept-Encoding -X-Powered-By: takumi -X-Rpc-Verify: {"action_ticket":"106ffc83f123asdzfa9e0dd1c91dca","verify_str":"{\"ticket\":\"23123433c12e1bf40f2a76bb2\",\"verify_type\":\"2\"}"} -X-Trace-Id: 2d79248aa55754e9:2d79248aa55754e9:0:1 -{"data":null,"message":"您正在新设备上登录,为保障您的账号安全,请先使用手机短信验证身份","retcode":-3235} +```json +// 响应头 +// x-rpc-verify +{ + "action_ticket": "106ffc83f123asdzfa9e0dd1c91dca", + "verify_str": "{\"ticket\":\"23123433c12e1bf40f2a76bb2\",\"verify_type\":\"2\"}" +} + + +// 响应体: +{ + "data": null, + "message": "您正在新设备上登录,为保障您的账号安全,请先使用手机短信验证身份", + "retcode": -3235 +} ```
@@ -357,9 +357,10 @@ _请求方式:POST_ **触发人机验证:** **响应头** -[极验文档](https://docs.geetest.com/gt4/deploy/server#%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0) +[参考极验文档](https://docs.geetest.com/gt4/deploy/server#%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0) -`X-Rpc-Aigis`: + +`x-rpc-aigis`: ```json { "session_id":"12131231231aa028d9c", @@ -382,7 +383,7 @@ _请求方式:post_ | 字段 | 类型 | 内容 | 备注 | | ---- | ---- | ---- | ---- | -| action_ticket | str | 响应体获取的ticket | | +| action_ticket | str | 响应体下verify_str的ticket参数 | | | action_type | str | 操作 |此处为verify_for_component | | verify_method | num | 验证模式 | 此处参考米游社为1 | | mobile_captcha | str | 设备接收到的验证码 | | @@ -405,7 +406,7 @@ _请求方式:post_ **JSON返回:** | 字段 | 类型 | 内容 | 备注 | | ---- | ---- | ---- | ---- | -| retcode | num | 返回码 | 为-3101触发人机验证 | +| retcode | num | 返回码 | | | message | str | 返回信息 | | @@ -430,7 +431,7 @@ https://passport-api.mihoyo.com/account/ma-cn-passport/app/checkRiskVerified | 字段 | 类型 | 内容 | 备注 | | ---- | ---- | ---- | ---- | -| action_ticket | str | 响应体获取获取的action_ticket | | +| action_ticket | str | 响应体下的action_ticket | |
查看示例 From 48b2512818e79292e1353f5696b4f238511e44de Mon Sep 17 00:00:00 2001 From: Lo Mu <61622984+LuoRenMu@users.noreply.github.com> Date: Mon, 20 Nov 2023 19:20:00 +0800 Subject: [PATCH 4/4] Change: text format --- hoyolab/login/password_hoyolab.md | 40 ++++++++++++++++++------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/hoyolab/login/password_hoyolab.md b/hoyolab/login/password_hoyolab.md index c2871f8..67e4569 100644 --- a/hoyolab/login/password_hoyolab.md +++ b/hoyolab/login/password_hoyolab.md @@ -253,7 +253,8 @@ _请求方式:POST_ 前提->[获取登录信息接口响应头](#获取登录信息)(在recode返回-3235时): -`x-rpc-verify`: +`x-rpc-verify`: + ```json { "action_ticket":"106ffc83feb64f5f9bfa9e0dd1c91dca", @@ -268,13 +269,13 @@ _请求方式:POST_ | 字段 | 类型 | 内容 | 备注 | | --------------- | ---- | -------------------------------------------- | ------------ | -| action_ticket | str | 设备通过后用于请求获取用户登录信息 | | +| action_ticket | str | 设备通过后用于请求获取用户登录信息 | | `verify_str`根对象 | 字段 | 类型 | 内容 | 备注 | | --------------- | ---- | -------------------------------------------- | ------------ | | ticket | str | 用户验证标识符 | | -| verify_type | str | 验证类型 | | +| verify_type | str | 验证类型 | |
查看示例 @@ -296,12 +297,12 @@ _请求方式:POST_ "retcode": -3235 } ``` -
+
_请求方式:POST_ -`https://passport-api.mihoyo.com/account/ma-cn-verifier/verifier/createMobileCaptchaByActionTicket` + > _需要验证请求头_ > > `x-rpc-app_id`:`bll8iq97cem8` @@ -312,9 +313,12 @@ _请求方式:POST_ > > `x-rpc-device_fp`:刚获取的设备指纹 > -> `x-rpc-device_id`:与上个步骤传递的设备ID相同 +> `x-rpc-device_id`:与上个步骤传递的设备ID相同 -**JSON请求:** + +`https://passport-api.mihoyo.com/account/ma-cn-verifier/verifier/createMobileCaptchaByActionTicket` + +**JSON请求:** | 字段 | 类型 | 内容 | 备注 | | ---- | ---- | ---- | ---- | @@ -322,7 +326,7 @@ _请求方式:POST_ | action_type | str | 操作 |此处为verify_for_component | -
+
查看示例 ```json @@ -354,13 +358,14 @@ _请求方式:POST_
-**触发人机验证:** +**触发人机验证:** -**响应头** +**响应头** [参考极验文档](https://docs.geetest.com/gt4/deploy/server#%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0) `x-rpc-aigis`: + ```json { "session_id":"12131231231aa028d9c", @@ -375,18 +380,20 @@ _请求方式:POST_ } ``` -#### 设备验证请求 -_请求方式:post_ +#### 设备验证请求 + +_请求方式:POST_ + `https://passport-api.mihoyo.com/account/ma-cn-verifier/verifier/verifyActionTicketPartly` -*json请求* +**json请求** | 字段 | 类型 | 内容 | 备注 | | ---- | ---- | ---- | ---- | | action_ticket | str | 响应体下verify_str的ticket参数 | | | action_type | str | 操作 |此处为verify_for_component | | verify_method | num | 验证模式 | 此处参考米游社为1 | -| mobile_captcha | str | 设备接收到的验证码 | | +| mobile_captcha | str | 设备接收到的验证码 | |
@@ -424,8 +431,9 @@ _请求方式:post_ #### 通过Ticket获取登录信息 -_请求方式:post_ -https://passport-api.mihoyo.com/account/ma-cn-passport/app/checkRiskVerified +_请求方式:POST_ + +`https://passport-api.mihoyo.com/account/ma-cn-passport/app/checkRiskVerified` **json请求**