mihoyo-api-collect/other/authentication.md
2023-02-08 23:39:44 +08:00

100 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 鉴权
- [请求头](#请求头)
- [米游社](#米游社)
- [Cookie](#cookie)
---
大多数API需要验证请求头。
部分API例如点赞文章、《原神》米游社签到、米游币等需要使用Cookie鉴权。
## 请求头
### 米游社
大多数API需要验证的请求头`x-rpc-app_version`、`x-rpc-client_type`、`x-rpc-device_id`、`X-Requested-With`、`Origin`、`Referer`、`Host`、`DS`、`User-Agent`。
少数API才需要验证的额外的请求头`x-rpc-page`、`x-rpc-challenge`。
可选请求头:`x-rpc-device_fp`、`x-rpc-device_name`、`x-rpc-device_model`、`x-rpc-sys_version`、`x-rpc-channel`。
#### `x-rpc-app_version`
#### `x-rpc-app_version`
米游社版本号,例如`2.44.1`。
与DS字段相关DS生成需要`salt`,而每个米游社版本的`salt`都不同。
因此1个米游社版本只能使用对应的1个`salt`用于生成DS。
#### `x-rpc-client_type`
APP为`2`或`5`,网页为`4`。
根据请求的API不同而变化。
将会在需要验证请求头的API进行标注。
与DS字段相关DS生成需要`salt`,而不同的`x-rpc-client_type`对应该版本米游社的`salt`也不同。
- `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需要验证未知其规律。
`3.1.3_#/ys`
#### `X-Requested-With`
国内版APP为`com.mihoyo.hyperion`。
国际版APP为`com.mihoyo.hoyolab`。
#### `Origin`
请求网站的协议与主机名。
#### `Host`
请求的网站的主机名。
#### `Referer`
在哪个网页发起的请求。
一般情况下国内版APP为
若`x-rpc-client_type`为`5`,则`https://webstatic.mihoyo.com/`
若`x-rpc-client_type`为`2`,则`https://app.mihoyo.com`
国际版APP为
`https://webstatic-sea.hoyolab.com`
#### `User-Agent`
无需验证请求头或`x-rpc-client_type`为`2`的API不需要设置请求头。
但还是最好避免带有`python`等字样。
用户代理,为`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值通过一系列算法得出。
## Cookie