Update authentication.md

This commit is contained in:
MoRanYue
2023-02-03 04:51:13 +08:00
committed by GitHub
parent f95464eb95
commit d2c9ebd009

View File

@@ -4,22 +4,34 @@
## 米游社
大多数API需要验证请求头部的`X-rpc-app_version``X-rpc-client_type``X-Requested-With``Origin``Referer``DS``User-Agent``Cookie`
大多数API需要验证请求头`x-rpc-app_version``x-rpc-client_type``x-rpc-sys_version``x-rpc-channel``x-rpc-device_id``x-rpc-device_fp``x-rpc-device_name``x-rpc-device_model``X-Requested-With``Origin``Referer``Host``DS``User-Agent`
少数API才需要验证的额外的请求头`x-rpc-page``x-rpc-challenge`
- `X-rpc-app_version`APP版本国际版APP与国内版APP版本不一样。国际版APP与国内版APP每个版本对应生成DS所用的`salt`也不一样
- `X-rpc-client_type`国内版APP则为`5`国际版APP则为`2`
- `x-rpc-app_version`APP版本号,例如`2.44.1`
国际版APP与国内版APP每个版本对应生成`DS`所用的`salt`也不一样
- `x-rpc-client_type`安卓APP为`2``5`,网页为`4`
- `x-rpc-sys_version`安卓系统大版本版本号例如Android 13则为`13`
- `x-rpc-channel`:手机厂商,例如小米则为`xiaomi`
- `x-rpc-device_name`手机厂商和手机型号例如小米11青春版则为`Xiaomi M2101K9C`
- `x-rpc-device_model`:手机型号。
- `x-rpc-page`少数API需要验证`/ys`
- `X-Requested-With`国内版APP则为`com.mihoyo.hyperion`国际版APP则为`com.mihoyo.hoyolab`
- `Origin`国内版APP则为`https://webstatic.mihoyo.com`国际版APP则为`https://webstatic-sea.hoyolab.com`
- `Referer`国内版APP则为`https://webstatic.mihoyo.com`国际版APP则为`https://webstatic-sea.hoyolab.com`
- `Origin``Referer`字段的协议与主机名部分相同
- `Host`:请求的网站的主机名
- `Referer`:在哪个网页发起的请求。
一般情况下国内版APP为
`https://webstatic.mihoyo.com/`
`https://app.mihoyo.com`等等。
国际版APP为
`https://webstatic-sea.hoyolab.com`
- `DS`:见[DS值](#ds值)。
- `User-Agent`:用户代理,为`Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) miHoYoBBS/2.11.1`
- `Cookie`:见[Cookie](#cookie)
- `User-Agent`:用户代理,为`okhttp/4.9.3``Mozilla/5.0 (Linux; Android 13; M2101K9C Build/TKQ1.220829.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/108.0.5359.128 Mobile Safari/537.36 miHoYoBBS/米游社版本号`
### DS值
DS值通过一系列算法得出。
大致步骤如下(伪代码):
<!--大致步骤如下(伪代码):
```
salt = APP版本所用的salt
@@ -58,20 +70,9 @@ else if 是国际服 {
最终在请求头部的DS字段的内容 = timestamp + "," + random + "," + ds
```
-->
### Cookie
登录账号后服务器设置的Cookie值。
- `_MHYUUID`
- `DEVICEFP_SEED_ID`
- `DEVICEFP_SEED_TIME`
- `_ga`
- `cookie_token_v2`
- `account_mid_v2`
- `account_id_v2`
- `ltoken_v2`
- `ltmid_v2`
- `ltuid_v2`
- `DEVICEFP`
- `_ga_XXXXXXXX`