From 3c91c4b699f26c27f2d6195cf303c67c25c0a9ee Mon Sep 17 00:00:00 2001 From: SocialSisterYi <45892418+SocialSisterYi@users.noreply.github.com> Date: Sat, 11 Jul 2020 22:17:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0app=E6=96=B9=E5=BC=8Fapi?= =?UTF-8?q?=E9=89=B4=E6=9D=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 6 ------ README.md | 2 +- comment/action.md | 2 +- login/QR.md | 14 +++++++------- other/API_auth.md | 47 +++++++++++++++++++++++++++++++++++++++++------ 5 files changed, 50 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index f18960d..e69de29 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +0,0 @@ - -login/password&SMS.md -B站API.txt -live/info_flow.md -bangumi/info.md -bangumi/ststus_number.md diff --git a/README.md b/README.md index 1fd2605..e18d41b 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ 计划整理分类&目录:(√代表已完成,x代表正在施工...) -- [API认证与鉴权](other/API_auth.md)× +- [API认证与鉴权](other/API_auth.md)(APP与Cookie方式)× - [图片格式化](other/picture.md)√ - [登录](login) - [二维码登录](login/QR.md)√ diff --git a/comment/action.md b/comment/action.md index ea16058..32dee0c 100644 --- a/comment/action.md +++ b/comment/action.md @@ -28,7 +28,7 @@ | 字段 | 类型 | 内容 | 备注 | | ------- | ---- | -------- | ------------------------------------------------------------ | -| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
-404:无此项
-509:请求过于频繁
12002:评论区已关闭
12006:没有该评论
12009:评论主体的type不合法
12016:评论内容包含敏感信息
12025:评论字数过多
12051:重复评论,请勿刷屏
**(其他错误码有待补充)** | +| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
-404:无此项
-509:请求过于频繁
12002:评论区已关闭
12006:没有该评论
12009:评论主体的type不合法
12015:需要评论验证码
12016:评论内容包含敏感信息
12025:评论字数过多
12035:该账号被UP主列入评论黑名单
12051:重复评论,请勿刷屏
**(其他错误码有待补充)** | | message | str | 错误信息 |
| | ttl | num | 1 | **作用尚不明确** | | data | obj | 数据本体 | | diff --git a/login/QR.md b/login/QR.md index 614910a..0003b9e 100644 --- a/login/QR.md +++ b/login/QR.md @@ -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 -## 申请二维码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 { diff --git a/other/API_auth.md b/other/API_auth.md index c862233..971ea08 100644 --- a/other/API_auth.md +++ b/other/API_auth.md @@ -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 | 用于用户识别与鉴权
作用同`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 `进行刷新