bilibili-API-collect/other/API_auth.md
2020-07-18 23:56:10 +08:00

59 lines
2.9 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.

# API认证与鉴权
## Cookie方式web端
cookie中的值在访问登录接口成功登录时用`set-cookie`写入
在访问api时为`Cookie`头的数据
Token有效期为1月更改密码或过期失效
| cookie项 | 含义 | 备注 |
| ----------------- | ----------------- | ------------------------------------------ |
| DedeUserID | 当前用户UID | |
| DedeUserID__ckMd5 | 用户UID md5校验值 | |
| SESSDATA | 登录Token | 用于用户识别与鉴权<br />作用同`access_key` |
| bili_jct | CSRF Token | 用于操作性接口 |
## APP方式手机客户端及TV端等
| 参数 | 含义 | 备注 |
| ------------- | ---------------- | -------------- |
| appkey | APP密钥 | |
| ts | 当前时间戳 | |
| sign | APP签名 | |
| access_key | APP登录Token | |
| refresh_token | APP刷新登录Token | 仅在刷新时使用 |
**接口鉴权:**
使用`appkey`作为api的必要参数并使用除`sign`外所有参数的url字串后连接相对应的盐值进行**md5校验**32位小写把计算结果作为sign的值与前面参数一同发送
**appkey与appsec一一对应**
已知的appkey与签名
| appkey | appsecsign盐值 | 来源 | 备注 |
| ---------------- | -------------------------------- | ------------ | -------- |
| 07da50c9a0bf829f | 75d35aa5c06fb46e40059a6a5bf671a6 | 安卓概念版 | |
| 1d8b6e7d45233436 | 560c52ccd288fed045859ed18bffd973 | 安卓端 | 一般用途 |
| 37207f2beaebf8d7 | e988e794d4d4b6dd43bc0e89d6e90c43 | 安卓biliLink | |
| 4409e2ce8ffd12b8 | 59b43e04ad6965f34319062b478f83dd | TV端 | |
| 85eb6835b0a1034e | 2ad42749773c441109bdc0191257a664 | | |
| bb3101000e232e27 | 36efcfed79309338ced0380abd824ac1 | | |
| bca7e84c2d947ac6 | | 安卓端 | 登录专用 |
| cc578d267072c94d | | 轻视频 | |
| cc8617fd6961e070 | | 漫画 | |
| iVGUTjsxvpLeuDCf | aHRmhWMLkdeMuILqORnYZocwMBpMEOdt | 安卓端 | 取流专用 |
例如:
参数的url为`appkey=1d8b6e7d45233436&test=123`->连接盐值后为`appkey=1d8b6e7d45233436&test=123560c52ccd288fed045859ed18bffd973`->进行md5 32bit校验结果为`8a3fdd74911862810f5c78f65afcce5d`->最终参数为`appkey=1d8b6e7d45233436&test=123&sign=8a3fdd74911862810f5c78f65afcce5d`
**身份认证:**
使用参数` access_key `进行身份验证有效期为1月作用同`SESSDATA`
可以使用` refresh_token `进行刷新