XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/bilibili-API-collect

添加app方式api鉴权

3c91c4b
SocialSisterYi <45892418+SocialSisterYi@users.noreply.github.com>
提交于

代码差异

5 个文件 +50 -21
Modified .gitignore +0 -6
@@ -1,6 +0,0 @@
1
2 login/password&SMS.md
3 B站API.txt
4 live/info_flow.md
5 bangumi/info.md
6 bangumi/ststus_number.md
Modified README.md +1 -1
@@ -31,7 +31,7 @@
31 31
32 32 计划整理分类&目录:(√代表已完成,x代表正在施工...)
33 33
34 - [API认证与鉴权](other/API_auth.md)×
34 - [API认证与鉴权](other/API_auth.md)(APP与Cookie方式)×
35 35 - [图片格式化](other/picture.md)√
36 36 - [登录](login)
37 37 - [二维码登录](login/QR.md)√
Modified comment/action.md +1 -1
@@ -28,7 +28,7 @@
28 28
29 29 | 字段 | 类型 | 内容 | 备注 |
30 30 | ------- | ---- | -------- | ------------------------------------------------------------ |
31 | code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-102:账号被封停<br />-111:csrf校验失败<br />-400:请求错误<br />-404:无此项<br />-509:请求过于频繁<br />12002:评论区已关闭<br />12006:没有该评论<br />12009:评论主体的type不合法<br />12016:评论内容包含敏感信息<br />12025:评论字数过多<br />12051:重复评论,请勿刷屏<br />**(其他错误码有待补充)** |
31 | code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-102:账号被封停<br />-111:csrf校验失败<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 />**(其他错误码有待补充)** |
32 32 | message | str | 错误信息 | <br /> |
33 33 | ttl | num | 1 | **作用尚不明确** |
34 34 | data | obj | 数据本体 | |
Modified login/QR.md +7 -7
@@ -2,24 +2,24 @@
2 2
3 3 流程&逻辑:
4 4
5 1. 获取`二维码内容url`以及`秘钥`,以`二维码内容url`生成二维码,等待手机客户端扫描
6 2. 以`秘钥`作为参数进行POST
5 1. 获取`二维码内容url`以及`密钥`,以`二维码内容url`生成二维码,等待手机客户端扫描
6 2. 以`密钥`作为参数进行POST
7 7 3. if "code"==true goto 6 else goto 4(是否已经确认)
8 8 4. if "data"==-4 goto 2 else goto 5(是否已经扫描)
9 5. if "data"==-5 goto 3 && 提示`已扫描`else goto 1&提示`二维码超时或错误`(秘钥是否有效)
9 5. if "data"==-5 goto 3 && 提示`已扫描`else goto 1&提示`二维码超时或错误`(密钥是否有效)
10 10 6. 成功后会自动配置cookie 如需登录游戏分站则访问`data`.`url`中的url
11 11
12 12 <img src="/imgs/2233login.png"/>
13 13
14 14
15 15
16 ## 申请二维码URL及扫码秘钥
16 ## 申请二维码URL及扫码密钥
17 17
18 18 > http://passport.bilibili.com/qrcode/getLoginUrl
19 19
20 20 *方式:GET*
21 21
22 秘钥超时为180秒
22 密钥超时为180秒
23 23
24 24 **json回复:**
25 25
@@ -64,7 +64,7 @@ http://passport.bilibili.com/qrcode/getLoginUrl
64 64
65 65 *方式:POST*
66 66
67 秘钥超时为180秒
67 密钥超时为180秒
68 68
69 69 验证正确时会进行设置以下cookie项:
70 70
@@ -98,7 +98,7 @@ data 对象:
98 98
99 99 curl -d "oauthKey=xxx" "http://passport.bilibili.com/qrcode/getLoginInfo"
100 100
101 当秘钥正确时但未扫描时`status`为`false`,`data`为num值`-4`
101 当密钥正确时但未扫描时`status`为`false`,`data`为num值`-4`
102 102
103 103 ```json
104 104 {
Modified other/API_auth.md +41 -6
@@ -8,10 +8,45 @@ cookie中的值在访问登录接口成功登录时,用`set-cookie`写入
8 8
9 9 Token有效期为1月,更改密码或过期失效
10 10
11 | cookie项 | 含义 | 备注 |
12 | ----------------- | ----------------- | ------------------ |
13 | DedeUserID | 当前用户UID | |
14 | DedeUserID__ckMd5 | 用户UID md5校验值 | |
15 | SESSDATA | 登录Token | 用于用户识别与鉴权 |
16 | bili_jct | CSRF Token | 用于操作性接口 |
11 | cookie项 | 含义 | 备注 |
12 | ----------------- | ----------------- | ------------------------------------------ |
13 | DedeUserID | 当前用户UID | |
14 | DedeUserID__ckMd5 | 用户UID md5校验值 | |
15 | SESSDATA | 登录Token | 用于用户识别与鉴权<br />作用同`access_key` |
16 | bili_jct | CSRF Token | 用于操作性接口 |
17
18 ## app方式
19
20 | 参数 | 含义 | 备注 |
21 | ------------- | ---------------- | -------------- |
22 | appkey | app密钥 | |
23 | sign | app签名 | |
24 | access_key | app登录Token | |
25 | refresh_token | app刷新登录Token | 仅在刷新时使用 |
26
27 **接口鉴权:**
28
29 使用`appkey`作为api的必要参数,并使用除`sign`外所有参数的url字串后连接相对应的盐值进行**md5校验**(32位小写),把计算结果作为sign的值,与前面参数一同发送
30
31 **appkey与sign盐值一一对应**
32
33 已知的appkey与签名:
34
35 | appkey | sign盐值 |
36 | ---------------- | -------------------------------- |
37 | 1d8b6e7d45233436 | 560c52ccd288fed045859ed18bffd973 |
38 | bb3101000e232e27 | 36efcfed79309338ced0380abd824ac1 |
39 | 07da50c9a0bf829f | 75d35aa5c06fb46e40059a6a5bf671a6 |
40 | 4409e2ce8ffd12b8 | 59b43e04ad6965f34319062b478f83dd |
41 | 37207f2beaebf8d7 | e988e794d4d4b6dd43bc0e89d6e90c43 |
42
43 例如:
44
45 参数的url为`appkey=1d8b6e7d45233436&test=123`->连接盐值后为`appkey=1d8b6e7d45233436&test=123560c52ccd288fed045859ed18bffd973`->进行md5 32bit校验,结果为`8a3fdd74911862810f5c78f65afcce5d`->最终参数为`appkey=1d8b6e7d45233436&test=123&sign=8a3fdd74911862810f5c78f65afcce5d`
46
47 **身份认证:**
48
49 使用参数` access_key `进行身份验证,有效期为1月,作用同`SESSDATA`
50
51 可以使用` refresh_token `进行刷新
17 52