添加app方式api鉴权

This commit is contained in:
SocialSisterYi 2020-07-11 22:17:40 +08:00
parent 8c806b6ed2
commit 3c91c4b699
5 changed files with 50 additions and 21 deletions

6
.gitignore vendored
View File

@ -1,6 +0,0 @@
login/password&SMS.md
B站API.txt
live/info_flow.md
bangumi/info.md
bangumi/ststus_number.md

View File

@ -31,7 +31,7 @@
计划整理分类&目录√代表已完成x代表正在施工...
- [API认证与鉴权](other/API_auth.md)×
- [API认证与鉴权](other/API_auth.md)APP与Cookie方式×
- [图片格式化](other/picture.md)√
- [登录](login)
- [二维码登录](login/QR.md)√

View File

@ -28,7 +28,7 @@
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-102账号被封停<br />-111csrf校验失败<br />-400请求错误<br />-404无此项<br />-509请求过于频繁<br />12002评论区已关闭<br />12006没有该评论<br />12009评论主体的type不合法<br />12016评论内容包含敏感信息<br />12025评论字数过多<br />12051重复评论请勿刷屏<br />**(其他错误码有待补充)** |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-102账号被封停<br />-111csrf校验失败<br />-400请求错误<br />-404无此项<br />-509请求过于频繁<br />12002评论区已关闭<br />12006没有该评论<br />12009评论主体的type不合法<br />12015需要评论验证码<br />12016评论内容包含敏感信息<br />12025评论字数过多<br />12035该账号被UP主列入评论黑名单<br />12051重复评论请勿刷屏<br />**(其他错误码有待补充)** |
| message | str | 错误信息 | <br /> |
| ttl | num | 1 | **作用尚不明确** |
| data | obj | 数据本体 | |

View File

@ -2,24 +2,24 @@
流程&逻辑:
1. 获取`二维码内容url`以及`钥`,以`二维码内容url`生成二维码,等待手机客户端扫描
2. 以`钥`作为参数进行POST
1. 获取`二维码内容url`以及`钥`,以`二维码内容url`生成二维码,等待手机客户端扫描
2. 以`钥`作为参数进行POST
3. if "code"==true goto 6 else goto 4是否已经确认
4. if "data"==-4 goto 2 else goto 5是否已经扫描
5. if "data"==-5 goto 3 && 提示`已扫描`else goto 1&提示`二维码超时或错误`钥是否有效)
5. if "data"==-5 goto 3 && 提示`已扫描`else goto 1&提示`二维码超时或错误`钥是否有效)
6. 成功后会自动配置cookie 如需登录游戏分站则访问`data`.`url`中的url
<img src="/imgs/2233login.png"/>
## 申请二维码URL及扫码
## 申请二维码URL及扫码
> http://passport.bilibili.com/qrcode/getLoginUrl
*方式GET*
钥超时为180秒
钥超时为180秒
**json回复**
@ -64,7 +64,7 @@ http://passport.bilibili.com/qrcode/getLoginUrl
*方式POST*
钥超时为180秒
钥超时为180秒
验证正确时会进行设置以下cookie项
@ -98,7 +98,7 @@ data 对象:
curl -d "oauthKey=xxx" "http://passport.bilibili.com/qrcode/getLoginInfo"
钥正确时但未扫描时`status`为`false``data`为num值`-4`
钥正确时但未扫描时`status`为`false``data`为num值`-4`
```json
{

View File

@ -8,10 +8,45 @@ cookie中的值在访问登录接口成功登录时用`set-cookie`写入
Token有效期为1月更改密码或过期失效
| cookie项 | 含义 | 备注 |
| ----------------- | ----------------- | ------------------ |
| DedeUserID | 当前用户UID | |
| DedeUserID__ckMd5 | 用户UID md5校验值 | |
| SESSDATA | 登录Token | 用于用户识别与鉴权 |
| bili_jct | CSRF Token | 用于操作性接口 |
| cookie项 | 含义 | 备注 |
| ----------------- | ----------------- | ------------------------------------------ |
| DedeUserID | 当前用户UID | |
| DedeUserID__ckMd5 | 用户UID md5校验值 | |
| SESSDATA | 登录Token | 用于用户识别与鉴权<br />作用同`access_key` |
| bili_jct | CSRF Token | 用于操作性接口 |
## app方式
| 参数 | 含义 | 备注 |
| ------------- | ---------------- | -------------- |
| appkey | app密钥 | |
| sign | app签名 | |
| access_key | app登录Token | |
| refresh_token | app刷新登录Token | 仅在刷新时使用 |
**接口鉴权:**
使用`appkey`作为api的必要参数并使用除`sign`外所有参数的url字串后连接相对应的盐值进行**md5校验**32位小写把计算结果作为sign的值与前面参数一同发送
**appkey与sign盐值一一对应**
已知的appkey与签名
| appkey | sign盐值 |
| ---------------- | -------------------------------- |
| 1d8b6e7d45233436 | 560c52ccd288fed045859ed18bffd973 |
| bb3101000e232e27 | 36efcfed79309338ced0380abd824ac1 |
| 07da50c9a0bf829f | 75d35aa5c06fb46e40059a6a5bf671a6 |
| 4409e2ce8ffd12b8 | 59b43e04ad6965f34319062b478f83dd |
| 37207f2beaebf8d7 | e988e794d4d4b6dd43bc0e89d6e90c43 |
例如:
参数的url为`appkey=1d8b6e7d45233436&test=123`->连接盐值后为`appkey=1d8b6e7d45233436&test=123560c52ccd288fed045859ed18bffd973`->进行md5 32bit校验结果为`8a3fdd74911862810f5c78f65afcce5d`->最终参数为`appkey=1d8b6e7d45233436&test=123&sign=8a3fdd74911862810f5c78f65afcce5d`
**身份认证:**
使用参数` access_key `进行身份验证有效期为1月作用同`SESSDATA`
可以使用` refresh_token `进行刷新