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 `进行刷新