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

XFEstudio/bilibili-API-collect

人机验证码+短信登录

0e46ce9
Kuresaru <1142305747@qq.com>
提交于

代码差异

3 个文件 +198 -1
Modified README.md +3 -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)×
Added login/verify/SMS.md +116 -0
@@ -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 ```
Added login/verify/readme.md +79 -0
@@ -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 - 密码登录