返回提交历史
Modified
README.md
+3
-1
Added
login/verify/SMS.md
+116
-0
Added
login/verify/readme.md
+79
-0
XFEstudio/bilibili-API-collect
人机验证码+短信登录
0e46ce9
代码差异
3 个文件
+198
-1
@@ -35,7 +35,9 @@
35
35
- [图片格式化](other/picture.md)√
36
36
- [登录](login)
37
37
- [二维码登录](login/QR.md)√
38
- 密码&短信登录
38
- [验证码登录](login/verify)√
39
+ [短信登录](login/verify/SMS.md)√
40
+ 密码登录
39
41
- qq&微博登录
40
42
- [登录基本信息](login/login_info.md)√
41
43
- [个人中心](login/member_center.md)×
@@ -0,0 +1,116 @@
1
# 短信登录
2
3
流程&逻辑:
4
5
1. [完成人机验证码](readme.md)
6
2. 发送短信
7
3. 提交短信验证码
8
9
10
## 发送短信
11
12
> https://passport.bilibili.com/web/sms/general/v2/send
13
14
*方式:POST*
15
16
**正文参数( application/x-www-form-urlencoded ):**
17
18
| 参数名 | 内容 | 备注 |
19
| --- | --- | --- |
20
| tel | 手机号码 | |
21
| cid | 1 | 固定 |
22
| key | 最开始返回来的 | |
23
| challenge | 最开始返回来的 | |
24
| validate | 验证后返回的 | |
25
| seccode | 验证后返回的 | "\|"号要转义成"%7C" |
26
27
28
**json回复:**
29
30
根对象:
31
32
| 字段 | 类型 | 内容 | 备注 |
33
| ------ | ---- | -------- | --------- |
34
| code | num | 返回值 | 0:成功 |
35
| message | str | "验证码短信已下发" | |
36
37
**示例:**
38
39
```shell
40
curl 'https://passport.bilibili.com/web/sms/general/v2/send' \
41
-d \
42
'tel=13888888888&'\
43
'cid=1&type=21&captchaType=6&'\
44
'key=76fb59fbd83a4d9d816162c5156fc964&'\
45
'challenge=2903a8eb967a1d990444cb23ea42f417&'\
46
'validate=f467c345a4e58646234565b6959ca45b&'\
47
'seccode=f467c345a4e58646234565b6959ca45b%7Cjordan'
48
```
49
```json
50
{
51
"code": 0,
52
"message": "验证码短信已下发"
53
}
54
```
55
56
57
## 短信验证
58
59
> https://passport.bilibili.com/web/sms/general/v2/send
60
61
*方式:POST*
62
63
**正文参数( application/x-www-form-urlencoded ):**
64
65
| 参数名 | 内容 | 备注 |
66
| --- | --- | --- |
67
| cid | 1 | 应该是固定的 |
68
| tel | 手机号码 | |
69
| smsCode | 短信验证码 | |
70
| source | main-web | 应该是固定的 |
71
| goUrl | https://space.bilibili.com | 未测试是否必需 |
72
| keep | true | 未知, 当它是固定吧 |
73
74
**json回复:**
75
76
根对象:
77
78
| 字段 | 类型 | 内容 | 备注 |
79
| --- | --- | --- | --- |
80
| code | num | 0 | 0是成功 |
81
| data | obj | | |
82
83
`data`对象:
84
85
| 字段 | 类型 | 内容 | 备注 |
86
| --- | --- | --- | --- |
87
| is_new | bool | false | 未知,估计是未注册时自动注册新用户 |
88
| status | num | 0 | 未知,可能0就是成功吧 |
89
| url | str | https://space.bilibili.com | 应该是请求时候参数里的那个 |
90
91
**http响应头**
92
93
和二维码登录一样,会返回`DedeUserID`、`DedeUserID__ckMd5`、`SESSDATA`、`bili_jct` 4个Cookie用于操作之后的接口
94
95
**示例:**
96
97
```shell
98
curl 'https://passport.bilibili.com/web/login/rapid'
99
-d 'cid=1&'\
100
'tel=13888888888&'\
101
'smsCode=123456'\
102
'&source=main-web&goUrl=https%3A%2F%2Fspace.bilibili.com&keep=true'
103
```
104
```json
105
{
106
"code": 0,
107
"data": {
108
"is_new": false,
109
"status": 0,
110
"url": "https://space.bilibili.com"
111
}
112
}
113
```
114
```plaintext
115
响应头: Set-Cookie...
116
```
@@ -0,0 +1,79 @@
1
# 验证码登录
2
3
流程&逻辑:
4
5
1. 请求验证码参数
6
2. 进行验证
7
3. 返回验证结果,进行短信或密码登录
8
9
10
## 申请验证码参数
11
12
> https://passport.bilibili.com/web/captcha/combine?plat=6
13
14
*方式:GET*
15
16
**json回复:**
17
18
根对象:
19
20
| 字段 | 类型 | 内容 | 备注 |
21
| ------ | ---- | -------- | --------- |
22
| code | num | 返回值 | 0:成功 |
23
| data | obj | 信息本体 | |
24
25
`data`对象:
26
27
| 字段 | 类型 | 内容 | 备注 |
28
| -------- | ----- | ------ | -------- |
29
| result | obj | 套了个娃 | 东西都在这 |
30
| type | num | 1 | 未知 |
31
32
`result`对象:
33
34
| 字段 | 类型 | 内容 | 备注 |
35
| -------- | ----- | ------ | -------- |
36
| success | num | 1 | 1应该就是成功了 |
37
| gt | str | 一串Hex | 好像是固定的 |
38
| challenge | str | 一串Hex | 验证码的id |
39
| key | str | 一串Hex | 验证码无关,但后边需要 |
40
41
42
**示例:**
43
44
```shell
45
curl 'https://passport.bilibili.com/web/captcha/combine?plat=6'
46
```
47
```json
48
{
49
"code": 0,
50
"data": {
51
"result": {
52
"success": 1,
53
"gt": "bd111e81eda1cbb9f54425aafc0908ac",
54
"challenge": "2903a8eb967a1d990444cb23ea42f417",
55
"key": "76fb59fbd83a4d9d816162c5156fc964"
56
},
57
"type": 1
58
}
59
}
60
```
61
62
63
## 进行验证
64
65
本文档为Bilibili文档,验证码为geetest极验提供,故不提供api.
66
67
附: [手动验证器](https://kuresaru.github.io/geetest-validator/)
68
[及其源码](https://github.com/kuresaru/geetest-validator)
69
70
1. 打开手动验证器,在1/2填入上边api返回的`gt`和`challenge`
71
2. 点击按钮3,稍等加载验证码,点击按钮4进行验证
72
3. 验证完成后,点击按钮5生成验证结果
73
4. 使用最开始获得到的`key`、`challenge`和刚获得到的`validate`、`seccode`继续之后的登录操作
74
75
76
## 继续登录
77
78
- [短信登录](SMS.md)
79
- 密码登录