219 lines
86 KiB
JavaScript
219 lines
86 KiB
JavaScript
import{_ as p,c as d,a as o,b as s,d as a,e,w as t,r,o as i}from"./app-Dgsdh8A6.js";const c={};function D(u,n){const l=r("RouteLink");return i(),d("div",null,[n[43]||(n[43]=o(`<h1 id="密ç �登录" tabindex="-1"><a class="header-anchor" href="#密ç �登录"><span>密ç �登录</span></a></h1><h2 id="密ç �登录æµ�程-伪代ç �" tabindex="-1"><a class="header-anchor" href="#密ç �登录æµ�程-伪代ç �"><span>密ç �登录æµ�程(伪代ç �)</span></a></h2><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-python"><span class="line"><span style="color:#D4D4D4;">è´¦å�· = </span><span style="color:#CE9178;">'2333333'</span></span>
|
||||
|
|
<span class="line"><span style="color:#D4D4D4;">密ç �å—符串 = </span><span style="color:#CE9178;">'password'</span></span>
|
|||
|
|
<span class="line"></span>
|
|||
|
|
<span class="line"><span style="color:#6A9955;"># 1.人机验è¯�æ¥éª¤</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">token, gt, challenge = 获å�–验è¯�ç �()</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">validate = 填写验è¯�ç �(gt, challenge) </span><span style="color:#6A9955;"># 这一æ¥å¡«å†™éªŒè¯�ç � (访问æž�验API,得到validate)</span></span>
|
|||
|
|
<span class="line"></span>
|
|||
|
|
<span class="line"><span style="color:#6A9955;"># 2.密ç �åŠ å¯†æ¥éª¤</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">pubkey, salt = 获�公钥和�()</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">åŠ å¯†å�Žçš„密ç � = RSAå…¬é’¥åŠ å¯†(pubkey, salt+密ç �å—符串) </span><span style="color:#6A9955;"># ç›�需è¦�åŠ åœ¨å¯†ç �å—符串å‰�</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">base64ç¼–ç �å�Žçš„密文 = base64ç¼–ç �(åŠ å¯†å�Žçš„密ç �)</span></span>
|
|||
|
|
<span class="line"></span>
|
|||
|
|
<span class="line"><span style="color:#6A9955;"># 3.开始登录</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">cookie = 密ç �登录(è´¦å�·, base64ç¼–ç �å�Žçš„密文, token, challenge, validate)</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">å˜å‚¨cookie(cookie)</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">SSO登录页é�¢è·³è½¬()</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="web端密ç �登录" tabindex="-1"><a class="header-anchor" href="#web端密ç �登录"><span>web端密ç �登录</span></a></h2><h3 id="获å�–公钥-ç›�-web端" tabindex="-1"><a class="header-anchor" href="#获å�–公钥-ç›�-web端"><span>获å�–公钥&ç›�(web端)</span></a></h3><blockquote><p>https://passport.bilibili.com/x/passport-login/web/key</p></blockquote><p><em>请求方å¼�:GET</em></p><p><strong>json回å¤�:</strong></p><p>æ ¹å¯¹è±¡ï¼š</p><table><thead><tr><th>å—æ®µ</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0:æˆ�功</td></tr><tr><td>message</td><td>str</td><td>错误信æ�¯</td><td></td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>ä¿¡æ�¯æœ¬ä½“</td><td></td></tr></tbody></table><p><code>data</code>对象:</p><table><thead><tr><th>å—æ®µ</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>hash</td><td>str</td><td>密ç �ç›�值</td><td>有效时间为 20s<br>æ�’为 16 å—符<br>需è¦�拼接在明文密ç �之å‰�</td></tr><tr><td>key</td><td>str</td><td>rsa 公钥</td><td>PEM æ ¼å¼�ç¼–ç �<br>åŠ å¯†å¯†ç �时需è¦�使用</td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> 'https://passport.bilibili.com/x/passport-login/web/key'</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><details><summary>查看å“�应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "code"</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "message"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"0"</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "ttl"</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "data"</span><span style="color:#D4D4D4;">: {</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "hash"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"9333681c87fd8d6e"</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "key"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"-----BEGIN PUBLIC KEY-----</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjb4V7EidX/ym28t2ybo0U6t0n</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">6p4ej8VjqKHg100va6jkNbNTrLQqMCQCAYtXMXXp2Fwkk6WR+12N9zknLjf+C9sx</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">/+l48mjUU8RqahiFD1XT/u2e0m2EN029OhCgkHx3Fc/KlFSIbak93EH/XlYis0w+</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">Xl69GV6klzgxW6d2xQIDAQAB</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">-----END PUBLIC KEY-----</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">"</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="登录æ“�作-web端" tabindex="-1"><a class="header-anchor" href="#登录æ“�作-web端"><span>登录æ“�作(web端)</span></a></h3><blockquote><p>https://passport.bilibili.com/x/passport-login/web/login</p></blockquote><p><em>请求方å¼�:POST</em></p><p>验è¯�登录æˆ�功å�Žä¼šè¿›è¡Œè®¾ç½®ä»¥ä¸‹ cookie 项:</p><p><code>sid</code> <code>DedeUserID</code> <code>DedeUserID__ckMd5</code> <code>SESSDATA</code> <code>bili_jct</code></p><p><strong>æ£æ–‡å�‚æ•° (application/x-www-form-urlencoded):</strong></p>`,21)),s("table",null,[n[21]||(n[21]=s("thead",null,[s("tr",null,[s("th",null,"å�‚æ•°å��"),s("th",null,"类型"),s("th",null,"内容"),s("th",null,"å¿…è¦�性"),s("th",null,"备注")])],-1)),s("tbody",null,[n[14]||(n[14]=s("tr",null,[s("td",null,"username"),s("td",null,"str"),s("td",null,"用户登录账å�·"),s("td",null,"å¿…è¦�"),s("td",null,"手机å�·æˆ–邮箱地å�€")],-1)),n[15]||(n[15]=s("tr",null,[s("td",null,"password"),s("td",null,"str"),s("td",null,"åŠ å¯†å�Žçš„带ç›�密ç �"),s("td",null,"å¿…è¦�"),s("td",null,"base64 æ ¼å¼�")],-1)),n[16]||(n[16]=s("tr",null,[s("td",null,"keep"),s("td",null,"num"),s("td",null,"0"),s("td",null,"å¿…è¦�"),s("td")],-1)),s("tr",null,[n[3]||(n[3]=s("td",null,"token",-1)),n[4]||(n[4]=s("td",null,"str",-1)),n[5]||(n[5]=s("td",null,"登录 token",-1)),n[6]||(n[6]=s("td",null,"å¿…è¦�",-1)),s("td",null,[n[1]||(n[1]=a("在")),e(l,{to:"/docs/login/login_action/#%E7%94%B3%E8%AF%B7captcha%E9%AA%8C%E8%AF%81%E7%A0%81"},{default:t(()=>n[0]||(n[0]=[a("申请 captcha 验è¯�ç �")])),_:1,__:[0]}),n[2]||(n[2]=a("接å�£å¤„获å�–"))])]),s("tr",null,[n[10]||(n[10]=s("td",null,"challenge",-1)),n[11]||(n[11]=s("td",null,"str",-1)),n[12]||(n[12]=s("td",null,"æž�验 challenge",-1)),n[13]||(n[13]=s("td",null,"å¿…è¦�",-1)),s("td",null,[n[8]||(n[8]=a("在")),e(l,{to:"/docs/login/login_action/#%E7%94%B3%E8%AF%B7captcha%E9%AA%8C%E8%AF%81%E7%A0%81"},{default:t(()=>n[7]||(n[7]=[a("申请 captcha 验è¯�ç �")])),_:1,__:[7]}),n[9]||(n[9]=a("接å�£å¤„获å�–"))])]),n[17]||(n[17]=s("tr",null,[s("td",null,"validate"),s("td",null,"str"),s("td",null,"æž�验 result"),s("td",null,"å¿…è¦�"),s("td",null,"æž�验验è¯�å�Žå¾—到")],-1)),n[18]||(n[18]=s("tr",null,[s("td",null,"seccode"),s("td",null,"str"),s("td",null,[a("æž�验 result +"),s("code",null,"|jordan")]),s("td",null,"å¿…è¦�"),s("td",null,"æž�验验è¯�å�Žå¾—到")],-1)),n[19]||(n[19]=s("tr",null,[s("td",null,"go_url"),s("td",null,"str"),s("td",null,"跳转 url"),s("td",null,"é�žå¿…è¦�"),s("td",null,"默认为 https://www.bilibili.com")],-1)),n[20]||(n[20]=s("tr",null,[s("td",null,"source"),s("td",null,"str"),s("td",null,"登录æ�¥æº�"),s("td",null,"é�žå¿…è¦�"),s("td",null,[s("code",null,"main_web"),a(":独立登录页"),s("br"),s("code",null,"main_mini"),a(":å°�窗登录")])],-1))])]),n[44]||(n[44]=o(`<p><strong>json回å¤�:</strong></p><p>æ ¹å¯¹è±¡ï¼š</p><table><thead><tr><th>å—æ®µ</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0:æˆ�功<br>-105:验è¯�ç �错误<br>-400:请求错误<br>-629:账å�·æˆ–密ç �错误<br>-653:用户å��或密ç �ä¸�能为空<br>-662:æ��交超时,请é‡�æ–°æ��交<br>-2001:缺少必è¦�的的å�‚æ•°<br>-2100:需验è¯�手机å�·æˆ–邮箱<br>2400:登录秘钥错误<br>2406:验è¯�æž�验æœ�务出错<br>86000:RSA解密失败</td></tr><tr><td>message</td><td>str</td><td>错误信æ�¯</td><td></td></tr><tr><td>data</td><td>æˆ�功时:obj<br>失败时:null</td><td>æ•°æ�®æœ¬ä½“</td><td></td></tr></tbody></table><p>data 对象:</p><table><thead><tr><th>å—æ®µ</th><th>类型</th><th>内容</th><th>备æ³
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'username=12345678900'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'password=xxx'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'keep=0'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'source=main_web'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'token=aabbccdd'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'challenge=2333'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'validate=666666'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'seccode=666666|jordan'</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看�应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "code"</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "message"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"0"</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "ttl"</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "data"</span><span style="color:#D4D4D4;">: {</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "status"</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "message"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">""</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "url"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"https://passport.biligame.com/crossDomain?DedeUserID=***&DedeUserID__ckMd5=***&Expires=***&SESSDATA=***&bili_jct=***&gourl=https%3A%2F%2Fwww.bilibili.com%2F"</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "refresh_token"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"***"</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "timestamp"</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1662452570273</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><p><strong>å“�应头部抓包信æ�¯ï¼š</strong></p><p>å�¯æ˜Žæ˜¾çœ‹è§�è®¾ç½®äº†å‡ ä¸ª cookie</p><details><summary>查看å“�应示例:</summary><div class="language-http line-numbers-mode" data-highlighter="shiki" data-ext="http" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-http"><span class="line"><span style="color:#569CD6;">HTTP</span><span style="color:#D4D4D4;">/</span><span style="color:#B5CEA8;">1.1</span><span style="color:#B5CEA8;"> 200</span><span style="color:#CE9178;"> OK</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">Date:</span><span style="color:#CE9178;"> Mon, 13 Jul 2020 06:56:00 GMT</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">Content-Type:</span><span style="color:#CE9178;"> application/json;charset=UTF-8</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">Content-Length:</span><span style="color:#CE9178;"> 273</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">Connection:</span><span style="color:#CE9178;"> keep-alive</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">Server:</span><span style="color:#CE9178;"> Apache-Coyote/1.1</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">Set-Cookie:</span><span style="color:#CE9178;"> DedeUserID=***; Domain=.bilibili.com; Expires=Sat, 09-Jan-2021 06:39:43 GMT; Path=/</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">Set-Cookie:</span><span style="color:#CE9178;"> DedeUserID__ckMd5=***; Domain=.bilibili.com; Expires=Sat, 09-Jan-2021 06:39:43 GMT; Path=/</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">Set-Cookie:</span><span style="color:#CE9178;"> SESSDATA=***; Domain=.bilibili.com; Expires=Sat, 09-Jan-2021 06:39:43 GMT; Path=/; HttpOnly</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">Set-Cookie:</span><span style="color:#CE9178;"> bili_jct=***; Domain=.bilibili.com; Expires=Sat, 09-Jan-2021 06:39:43 GMT; Path=/</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">Content-Security-Policy-Report-Only:</span><span style="color:#CE9178;"> default-src 'self' data: *.bilibili.com *.hdslb.com; style-src 'self' 'unsafe-inline' *.hdslb.com static.geetest.com; img-src 'self' data: blob: *.bilibili.com *.hdslb.com http://*.hdslb.com static.geetest.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' *.bilibili.com *.hdslb.com api.geetest.com static.geetest.com; object-src 'self' *.hdslb.com; media-src 'self' *.acgvideo.com http://*.acgvideo.com *.ksyungslb.com; connect-src 'self' data: wss://*.bilibili.com:* *.bilibili.com *.hdslb.com *.biliapi.net *.biliapi.com; frame-ancestors 'self' *.bilibili.com *.biligame.com; report-uri https://security.bilibili.com/csp_report</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">Expires:</span><span style="color:#CE9178;"> Mon, 13 Jul 2020 06:55:59 GMT</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">Cache-Control:</span><span style="color:#CE9178;"> no-cache</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">X-Cache-Webcdn:</span><span style="color:#CE9178;"> BYPASS from jd-sxhz-dx-w-01</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="web端密ç �登录-旧版" tabindex="-1"><a class="header-anchor" href="#web端密ç �登录-旧版"><span>web端密ç �登录-旧版</span></a></h2><p>以下为密ç �扫ç �登录 API,尚å�¯æ£å¸¸è®¿é—®</p><h3 id="获å�–公钥-ç›�-web端-旧版" tabindex="-1"><a class="header-anchor" href="#获å�–公钥-ç›�-web端-旧版"><span>获å�–公钥&ç›�(web端-旧版)</span></a></h3><blockquote><p>https://passport.bilibili.com/login?act=getkey</p></blockquote><p><em>请求方å¼�:GET</em></p><p><strong>json回å¤�:</strong></p><p>æ ¹å¯¹è±¡ï¼š</p><table><thead><tr><th>å—æ®µ</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>hash</td><td>str</td><td>密ç �ç›�值</td><td>有效时间为 20s<br>æ�’为 16 å—符<br>需è¦�拼接在明文密ç �之å‰�</td></tr><tr><td>key</td><td>str</td><td>rsa 公钥</td><td>PEM æ ¼å¼�ç¼–ç �<br>åŠ å¯†å¯†ç �时需è¦�使用</td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> 'https://passport.bilibili.com/login?act=getkey'</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><details><summary>查看å“�应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "hash"</span><span style="color:#D4D4D4;">:</span><span style="color:#CE9178;">"07c6501690c1af85"</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "key"</span><span style="color:#D4D4D4;">:</span><span style="color:#CE9178;">"-----BEGIN PUBLIC KEY-----</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjb4V7EidX/ym28t2ybo0U6t0n</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">6p4ej8VjqKHg100va6jkNbNTrLQqMCQCAYtXMXXp2Fwkk6WR+12N9zknLjf+C9sx</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">/+l48mjUU8RqahiFD1XT/u2e0m2EN029OhCgkHx3Fc/KlFSIbak93EH/XlYis0w+</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">Xl69GV6klzgxW6d2xQIDAQAB</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">-----END PUBLIC KEY-----</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">"</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="登录æ“�作-web端-旧版" tabindex="-1"><a class="header-anchor" href="#登录æ“�作-web端-旧版"><span>登录æ“�作(web端-旧版)</span></a></h3><blockquote><p>https://passport.bilibili.com/web/login/v2</p></blockquote><p><em>请求方å¼�:POST</em></p><p>验è¯�登录æˆ�功å�Žä¼šè¿›è¡Œè®¾ç½®ä»¥ä¸‹cookie项:</p><p><code>sid</code> <code>DedeUserID</code> <code>DedeUserID__ckMd5</code> <code>SESSDATA</code> <code>bili_jct</code></p><p><strong>æ£æ–‡å�‚æ•° (application/x-www-form-urlencoded):</strong></p>`,29)),s("table",null,[n[42]||(n[42]=s("thead",null,[s("tr",null,[s("th",null,"å�‚æ•°å��"),s("th",null,"类型"),s("th",null,"内容"),s("th",null,"å¿…è¦�性"),s("th",null,"备注")])],-1)),s("tbody",null,[n[36]||(n[36]=s("tr",null,[s("td",null,"captchaType"),s("td",null,"num"),s("td",null,"6"),s("td",null,"å¿…è¦�"),s("td",null,[a("必须为"),s("code",null,"6")])],-1)),n[37]||(n[37]=s("tr",null,[s("td",null,"username"),s("td",null,"str"),s("td",null,"用户登录账å�·"),s("td",null,"å¿…è¦�"),s("td",null,"手机å�·æˆ–邮箱地å�€")],-1)),n[38]||(n[38]=s("tr",null,[s("td",null,"password"),s("td",null,"str"),s("td",null,"åŠ å¯†å�Žçš„带ç›�密ç �"),s("td",null,"å¿…è¦�"),s("td",null,"base64 æ ¼å¼�")],-1)),n[39]||(n[39]=s("tr",null,[s("td",null,"keep"),s("td",null,"bool"),s("td",null,"是å�¦è®°ä½�登录"),s("td",null,"å¿…è¦�"),s("td",null,[s("code",null,"true"),a(":记ä½�登录"),s("br"),s("code",null,"false"),a(":ä¸�è®°ä½�登录")])],-1)),s("tr",null,[n[25]||(n[25]=s("td",null,"key",-1)),n[26]||(n[26]=s("td",null,"str",-1)),n[27]||(n[27]=s("td",null,"登录 token",-1)),n[28]||(n[28]=s("td",null,"å¿…è¦�",-1)),s("td",null,[n[23]||(n[23]=a("在")),e(l,{to:"/docs/login/login_action/#%E7%94%B3%E8%AF%B7captcha%E9%AA%8C%E8%AF%81%E7%A0%81"},{default:t(()=>n[22]||(n[22]=[a("申请 captcha 验è¯�ç �")])),_:1,__:[22]}),n[24]||(n[24]=a("接å�£å¤„获å�–"))])]),s("tr",null,[n[32]||(n[32]=s("td",null,"challenge",-1)),n[33]||(n[33]=s("td",null,"str",-1)),n[34]||(n[34]=s("td",null,"æž�验 challenge",-1)),n[35]||(n[35]=s("td",null,"å¿…è¦�",-1)),s("td",null,[n[30]||(n[30]=a("在")),e(l,{to:"/docs/login/login_action/#%E7%94%B3%E8%AF%B7captcha%E9%AA%8C%E8%AF%81%E7%A0%81"},{default:t(()=>n[29]||(n[29]=[a("申请 captcha 验è¯�ç �")])),_:1,__:[29]}),n[31]||(n[31]=a("接å�£å¤„获å�–"))])]),n[40]||(n[40]=s("tr",null,[s("td",null,"validate"),s("td",null,"str"),s("td",null,"æž�验 result"),s("td",null,"å¿…è¦�"),s("td",null,"æž�验验è¯�å�Žå¾—到")],-1)),n[41]||(n[41]=s("tr",null,[s("td",null,"seccode"),s("td",null,"str"),s("td",null,[a("æž�验 result +"),s("code",null,"|jordan")]),s("td",null,"å¿…è¦�"),s("td",null,"æž�验验è¯�å�Žå¾—到")],-1))])]),n[45]||(n[45]=o(`<p><strong>json回å¤�:</strong></p><p>æ ¹å¯¹è±¡ï¼š</p><table><thead><tr><th>å—æ®µ</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0:æˆ�功<br>-400:请求错误<br>-629:账å�·æˆ–密ç �错误<br>-653:用户å��或密ç �ä¸�能为空<br>-662:æ��交超时,请é‡�æ–°æ��交<br>-2001:缺少必è¦�的的å�‚æ•°<br>-2100:需验è¯�手机å�·æˆ–邮箱<br>2400:登录秘钥错误<br>2406:验è¯�æž�验æœ�务出错<br>86000:RSA解密失败</td></tr><tr><td>ts</td><td>num</td><td>当å‰�时间戳</td><td>æˆ�åŠŸæ—¶æ— æ¤é¡¹</td></tr><tr><td>message</td><td>str</td><td>错误信æ�¯</td><td>默认为0</td></tr><tr><td>data</td><td>obj</td><td>æ•°æ�®æœ¬ä½“</td><td>æˆ�功时有æ¤é¡¹</td></tr></tbody></table><p><code>data</code>对象:</p><p><strong>未登录时:</strong></p><table><thead><tr><th>å—æ®µ</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>redirectUrl</td><td>str</td><td>游æˆ�分站跨域登录 url</td><td></td></tr></tbody></table><p><strong>已登录时:
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'captchaType=6'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'username=12345678900'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'password=xxx'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'keep=true'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'token=aabbccdd'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'challenge=2333'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'validate=666666'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'seccode=666666|jordan'</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看�应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "code"</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "data"</span><span style="color:#D4D4D4;">: {</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "redirectUrl"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"https://passport.biligame.com/crossDomain?DedeUserID=***&DedeUserID__ckMd5=***&Expires=15551000&SESSDATA=***&bili_jct=***&gourl=https%3A%2F%2Fwww.bilibili.com"</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><p><strong>å“�应头部抓包信æ�¯ï¼š</strong></p><p>å�¯æ˜Žæ˜¾çœ‹è§�è®¾ç½®äº†å‡ ä¸ª cookie</p><details><summary>查看å“�应示例:</summary><div class="language-http line-numbers-mode" data-highlighter="shiki" data-ext="http" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-http"><span class="line"><span style="color:#569CD6;">HTTP</span><span style="color:#D4D4D4;">/</span><span style="color:#B5CEA8;">1.1</span><span style="color:#B5CEA8;"> 200</span><span style="color:#CE9178;"> OK</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">Date:</span><span style="color:#CE9178;"> Mon, 13 Jul 2020 06:56:00 GMT</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">Content-Type:</span><span style="color:#CE9178;"> application/json;charset=UTF-8</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">Content-Length:</span><span style="color:#CE9178;"> 273</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">Connection:</span><span style="color:#CE9178;"> keep-alive</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">Server:</span><span style="color:#CE9178;"> Apache-Coyote/1.1</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">Set-Cookie:</span><span style="color:#CE9178;"> DedeUserID=***; Domain=.bilibili.com; Expires=Sat, 09-Jan-2021 06:39:43 GMT; Path=/</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">Set-Cookie:</span><span style="color:#CE9178;"> DedeUserID__ckMd5=***; Domain=.bilibili.com; Expires=Sat, 09-Jan-2021 06:39:43 GMT; Path=/</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">Set-Cookie:</span><span style="color:#CE9178;"> SESSDATA=***; Domain=.bilibili.com; Expires=Sat, 09-Jan-2021 06:39:43 GMT; Path=/; HttpOnly</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">Set-Cookie:</span><span style="color:#CE9178;"> bili_jct=***; Domain=.bilibili.com; Expires=Sat, 09-Jan-2021 06:39:43 GMT; Path=/</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">Content-Security-Policy-Report-Only:</span><span style="color:#CE9178;"> default-src 'self' data: *.bilibili.com *.hdslb.com; style-src 'self' 'unsafe-inline' *.hdslb.com static.geetest.com; img-src 'self' data: blob: *.bilibili.com *.hdslb.com http://*.hdslb.com static.geetest.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' *.bilibili.com *.hdslb.com api.geetest.com static.geetest.com; object-src 'self' *.hdslb.com; media-src 'self' *.acgvideo.com http://*.acgvideo.com *.ksyungslb.com; connect-src 'self' data: wss://*.bilibili.com:* *.bilibili.com *.hdslb.com *.biliapi.net *.biliapi.com; frame-ancestors 'self' *.bilibili.com *.biligame.com; report-uri https://security.bilibili.com/csp_report</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">Expires:</span><span style="color:#CE9178;"> Mon, 13 Jul 2020 06:55:59 GMT</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">Cache-Control:</span><span style="color:#CE9178;"> no-cache</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">X-Cache-Webcdn:</span><span style="color:#CE9178;"> BYPASS from jd-sxhz-dx-w-01</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h2 id="app端密ç �登录" tabindex="-1"><a class="header-anchor" href="#app端密ç �登录"><span>APP端密ç �登录</span></a></h2><h3 id="获å�–公钥-ç›�-app端" tabindex="-1"><a class="header-anchor" href="#获å�–公钥-ç›�-app端"><span>获å�–公钥&ç›�(APP端)</span></a></h3><blockquote><p>http://passport.bilibili.com/api/oauth2/getKey</p></blockquote><p><em>请求方å¼�:POST</em></p><p>鉴æ�ƒæ–¹å¼�:appkey</p><p><strong>æ£æ–‡å�‚数( application/x-www-form-urlencoded ):</strong></p><table><thead><tr><th>å�‚æ•°å��</th><th>类型</th><th>内容</th><th>å¿…è¦�性</th><th>备注</th></tr></thead><tbody><tr><td>appkey</td><td>str</td><td>APP密钥</td><td>APPæ–¹å¼�å¿…è¦�</td><td></td></tr><tr><td>sign</td><td>str</td><td>APPç¾å��</td><td>APPæ–¹å¼�å¿…è¦�</td><td></td></tr></tbody></table><p><strong>json回å¤�:</strong></p><p>æ ¹å¯¹è±¡ï¼š</p><table><thead><tr><th>å—æ®µ</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>hash</td><td>str</td><td>密ç �ç›�值</td><td>有效时间为 20s<br>æ�’为 16 å—符<br>需è¦�拼接在明文密ç �之å‰�</td></tr><tr><td>key</td><td>str</td><td>rsa 公钥</td><td>PEM æ ¼å¼�ç¼–ç �<br>åŠ å¯†å¯†ç �时需è¦�使用</td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#CE9178;"> 'https://passport.bilibili.com/api/oauth2/getKey'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'appkey=1d8b6e7d45233436'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'sign=17004c193f688f0b5665c1068e733aff'</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看�应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "hash"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"07c6501690c1af85"</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "key"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"-----BEGIN PUBLIC KEY-----</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjb4V7EidX/ym28t2ybo0U6t0n</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">6p4ej8VjqKHg100va6jkNbNTrLQqMCQCAYtXMXXp2Fwkk6WR+12N9zknLjf+C9sx</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">/+l48mjUU8RqahiFD1XT/u2e0m2EN029OhCgkHx3Fc/KlFSIbak93EH/XlYis0w+</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">Xl69GV6klzgxW6d2xQIDAQAB</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">-----END PUBLIC KEY-----</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">"</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="登录æ“�作-app端" tabindex="-1"><a class="header-anchor" href="#登录æ“�作-app端"><span>登录æ“�作(APP端)</span></a></h3><p>TODO</p><h2 id="登录密ç �çš„åŠ å¯†å®žä¾‹" tabindex="-1"><a class="header-anchor" href="#登录密ç �çš„åŠ å¯†å®žä¾‹"><span>登录密ç �çš„åŠ å¯†å®žä¾‹</span></a></h2><p>以下实例使用 Python è¯è¨€ï¼Œåœ¨ä»»ä½•å¹³å�°ï¼ˆwebã€�APP)使用密ç �登录都需è¦�å¦‚ä¸‹åŠ å¯†æ¥éª¤</p><p>首先在需拉å�– RSA PubKey å’Œ salt 备用</p><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-python"><span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> requests</span></span>
|
|||
|
|
<span class="line"></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">resp = requests.get(</span><span style="color:#CE9178;">'https://passport.bilibili.com/x/passport-login/web/key'</span><span style="color:#D4D4D4;">).json()[</span><span style="color:#CE9178;">'data'</span><span style="color:#D4D4D4;">]</span></span>
|
|||
|
|
<span class="line"><span style="color:#DCDCAA;">print</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">'salt ='</span><span style="color:#D4D4D4;">, resp[</span><span style="color:#CE9178;">'hash'</span><span style="color:#D4D4D4;">])</span></span>
|
|||
|
|
<span class="line"><span style="color:#DCDCAA;">print</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">'PubKey ='</span><span style="color:#D4D4D4;">, resp[</span><span style="color:#CE9178;">'key'</span><span style="color:#D4D4D4;">])</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p><code>hash</code>å—æ®µä¸º salt,长度固定为 16 å—符,timeout æ—¶é—´å�ªæœ‰ 20s</p><p><code>key</code>å—æ®µä¸º RSA PubKey,为 PEM æ ¼å¼�ï¼ŒåŠ å¯†éœ€è¦�使用</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-"><span class="line"><span>salt = 9773d106a67e27d6</span></span>
|
|||
|
|
<span class="line"><span>PubKey = -----BEGIN PUBLIC KEY-----</span></span>
|
|||
|
|
<span class="line"><span>MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjb4V7EidX/ym28t2ybo0U6t0n</span></span>
|
|||
|
|
<span class="line"><span>6p4ej8VjqKHg100va6jkNbNTrLQqMCQCAYtXMXXp2Fwkk6WR+12N9zknLjf+C9sx</span></span>
|
|||
|
|
<span class="line"><span>/+l48mjUU8RqahiFD1XT/u2e0m2EN029OhCgkHx3Fc/KlFSIbak93EH/XlYis0w+</span></span>
|
|||
|
|
<span class="line"><span>Xl69GV6klzgxW6d2xQIDAQAB</span></span>
|
|||
|
|
<span class="line"><span>-----END PUBLIC KEY-----</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>例如登录密ç �为<code>BiShi22332323</code>ï¼ŒçŽ°åœ¨å¯¹å®ƒè¿›è¡ŒåŠ ç›�并使用获å�–çš„ PubKey åŠ å¯†</p><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-python"><span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> rsa</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">password = </span><span style="color:#CE9178;">'BiShi22332323'</span></span>
|
|||
|
|
<span class="line"></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">pubKey = rsa.PublicKey.load_pkcs1_openssl_pem(resp[</span><span style="color:#CE9178;">'key'</span><span style="color:#D4D4D4;">]) </span><span style="color:#6A9955;"># 读� PEM 密钥</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">encryptedPassword = rsa.encrypt((resp[</span><span style="color:#CE9178;">'hash'</span><span style="color:#D4D4D4;">]+password).encode(), pubKey) </span><span style="color:#6A9955;"># ç›�需è¦�åŠ åœ¨æ˜Žæ–‡å¯†ç �之å‰�ï¼Œä¸€å¹¶åŠ å¯†</span></span>
|
|||
|
|
<span class="line"><span style="color:#DCDCAA;">print</span><span style="color:#D4D4D4;">(encryptedPassword)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>下é�¢å°†è¾“出一段 bytes æ•°æ�®ï¼š</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-"><span class="line"><span>b'}\\x9c\\xd4\\xcd\\x88\\x92\\xa7\\xde\\x85\\xdb\\xabm\\xd7\\xd3\\x08\\x02@xo\\x85\\xa4\\xe1\\x11\\xd0o\\x80\\x03.$\\xc8l\\xbe\\xba;\\xfe\\xee\\xa7(\\xf8S\\x95\\x1e\\x9106\\xa4\\x1d\\xcf\\x8e\\xbe\\x8d\\x94A\\x86s\\xf9"\\x12\\x0c\\x135\\xbb\\xbc\\xe1\\xde\\x1b\\x90\\t)P\\xeb\\xa9\\x8fXY]\\x83\\x18\\x81f\\n:\\xdb\\xe1\\xbe\\xe8\\x1e\\xba\\x1c D8d}B\\x17\\xf9\\x8a\\xf0i\\'1\\xa5\\xc4\\x05&\\xaa;n\\xf8{\\xa02\\xffY\\xcelU\\xd5\\xaf\\x8aJK\\xdc\\xf1@\\xbc\\x93'</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>接下æ�¥éœ€è¦�æŠŠåŠ å¯†å�Žçš„结果进行 base64 ç¼–ç �</p><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-python"><span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> base64</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">b64Password = base64.b64encode(encryptedPassword).decode()</span></span>
|
|||
|
|
<span class="line"><span style="color:#DCDCAA;">print</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">'result ='</span><span style="color:#D4D4D4;">, b64Password)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>ä»¥ä¸‹ä¸ºæœ€ç»ˆåŠ å¯†ç»“æžœï¼Œå�¯ç›´æŽ¥å�‘ API è¯·æ±‚ä½“ä¼ å�‚以登录:</p><p>å› ä¸º RSA å…¬é’¥åŠ å¯†çš„<strong>æ— æ³•è§£å¯†æ€§</strong>ï¼Œæ•…æ— æ³•æœ¬åœ°éªŒè¯�,仅å�¯è¯·æ±‚ API 验è¯�(略...</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-"><span class="line"><span>result = fZzUzYiSp96F26tt19MIAkB4b4Wk4RHQb4ADLiTIbL66O/7upyj4U5UekTA2pB3Pjr6NlEGGc/kiEgwTNbu84d4bkAkpUOupj1hZXYMYgWYKOtvhvugeuhwgRDhkfUIX+YrwaScxpcQFJqo7bvh7oDL/Wc5sVdWvikpL3PFAvJM=</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>以下为密ç �åŠ å¯†çš„Java实现:</p><div class="language-java line-numbers-mode" data-highlighter="shiki" data-ext="java" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-java"><span class="line"><span style="color:#569CD6;">package</span><span style="color:#D4D4D4;"> com.ho.test;</span></span>
|
|||
|
|
<span class="line"></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> cn.hutool.core.codec.Base64;</span></span>
|
|||
|
|
<span class="line"></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> javax.crypto.Cipher;</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.security.KeyFactory;</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.security.PublicKey;</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">import</span><span style="color:#D4D4D4;"> java.security.spec.X509EncodedKeySpec;</span></span>
|
|||
|
|
<span class="line"></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">public</span><span style="color:#569CD6;"> class</span><span style="color:#4EC9B0;"> Test3</span><span style="color:#D4D4D4;"> {</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> public</span><span style="color:#569CD6;"> static</span><span style="color:#4EC9B0;"> void</span><span style="color:#DCDCAA;"> main</span><span style="color:#D4D4D4;">(</span><span style="color:#4EC9B0;">String</span><span style="color:#D4D4D4;">[] </span><span style="color:#9CDCFE;">args</span><span style="color:#D4D4D4;">) </span><span style="color:#569CD6;">throws</span><span style="color:#4EC9B0;"> Exception</span><span style="color:#D4D4D4;"> {</span></span>
|
|||
|
|
<span class="line"><span style="color:#6A9955;"> //用户密ç �</span></span>
|
|||
|
|
<span class="line"><span style="color:#4EC9B0;"> String</span><span style="color:#9CDCFE;"> password</span><span style="color:#D4D4D4;"> = </span><span style="color:#CE9178;">"abcdef"</span><span style="color:#D4D4D4;">;</span></span>
|
|||
|
|
<span class="line"><span style="color:#6A9955;"> //获�到的�书内容</span></span>
|
|||
|
|
<span class="line"><span style="color:#4EC9B0;"> String</span><span style="color:#9CDCFE;"> key</span><span style="color:#D4D4D4;"> = </span><span style="color:#CE9178;">"-----BEGIN PUBLIC KEY-----</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjb4V7EidX/ym28t2ybo0U6t0n</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">6p4ej8VjqKHg100va6jkNbNTrLQqMCQCAYtXMXXp2Fwkk6WR+12N9zknLjf+C9sx</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">/+l48mjUU8RqahiFD1XT/u2e0m2EN029OhCgkHx3Fc/KlFSIbak93EH/XlYis0w+</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">Xl69GV6klzgxW6d2xQIDAQAB</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">-----END PUBLIC KEY-----</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">"</span><span style="color:#D4D4D4;">;</span></span>
|
|||
|
|
<span class="line"><span style="color:#6A9955;"> //获�到的�值</span></span>
|
|||
|
|
<span class="line"><span style="color:#4EC9B0;"> String</span><span style="color:#9CDCFE;"> hash</span><span style="color:#D4D4D4;"> = </span><span style="color:#CE9178;">"bb73382121594c46"</span><span style="color:#D4D4D4;">;</span></span>
|
|||
|
|
<span class="line"><span style="color:#4EC9B0;"> String</span><span style="color:#D4D4D4;">[] </span><span style="color:#9CDCFE;">split</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">key</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">strip</span><span style="color:#D4D4D4;">().</span><span style="color:#DCDCAA;">split</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"</span><span style="color:#D7BA7D;">\\n</span><span style="color:#CE9178;">"</span><span style="color:#D4D4D4;">);</span></span>
|
|||
|
|
<span class="line"><span style="color:#4EC9B0;"> String</span><span style="color:#9CDCFE;"> newKey</span><span style="color:#D4D4D4;"> = split[</span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">] + split[</span><span style="color:#B5CEA8;">2</span><span style="color:#D4D4D4;">] + split[</span><span style="color:#B5CEA8;">3</span><span style="color:#D4D4D4;">] + split[</span><span style="color:#B5CEA8;">4</span><span style="color:#D4D4D4;">];</span></span>
|
|||
|
|
<span class="line"><span style="color:#6A9955;"> //è¿›è¡ŒåŠ å¯†</span></span>
|
|||
|
|
<span class="line"><span style="color:#4EC9B0;"> KeyFactory</span><span style="color:#9CDCFE;"> keyFactory</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">KeyFactory</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">getInstance</span><span style="color:#D4D4D4;">(</span><span style="color:#CE9178;">"RSA"</span><span style="color:#D4D4D4;">);</span></span>
|
|||
|
|
<span class="line"><span style="color:#4EC9B0;"> X509EncodedKeySpec</span><span style="color:#9CDCFE;"> keySpec</span><span style="color:#D4D4D4;"> = </span><span style="color:#C586C0;">new</span><span style="color:#DCDCAA;"> X509EncodedKeySpec</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Base64</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">decode</span><span style="color:#D4D4D4;">(newKey));</span></span>
|
|||
|
|
<span class="line"><span style="color:#4EC9B0;"> PublicKey</span><span style="color:#9CDCFE;"> publicKey</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">keyFactory</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">generatePublic</span><span style="color:#D4D4D4;">(keySpec);</span></span>
|
|||
|
|
<span class="line"><span style="color:#4EC9B0;"> Cipher</span><span style="color:#9CDCFE;"> cipher</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">Cipher</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">getInstance</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">keyFactory</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">getAlgorithm</span><span style="color:#D4D4D4;">());</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> cipher</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">init</span><span style="color:#D4D4D4;">(</span><span style="color:#9CDCFE;">Cipher</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">PUBLIC_KEY</span><span style="color:#D4D4D4;">, publicKey);</span></span>
|
|||
|
|
<span class="line"><span style="color:#4EC9B0;"> byte</span><span style="color:#D4D4D4;">[] </span><span style="color:#9CDCFE;">bytes</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">cipher</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">doFinal</span><span style="color:#D4D4D4;">((hash + password).</span><span style="color:#DCDCAA;">getBytes</span><span style="color:#D4D4D4;">());</span></span>
|
|||
|
|
<span class="line"><span style="color:#4EC9B0;"> String</span><span style="color:#9CDCFE;"> encode</span><span style="color:#D4D4D4;"> = </span><span style="color:#9CDCFE;">Base64</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">encode</span><span style="color:#D4D4D4;">(bytes);</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> System</span><span style="color:#D4D4D4;">.</span><span style="color:#9CDCFE;">out</span><span style="color:#D4D4D4;">.</span><span style="color:#DCDCAA;">println</span><span style="color:#D4D4D4;">(encode);</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="手机å�·éªŒè¯�" tabindex="-1"><a class="header-anchor" href="#手机å�·éªŒè¯�"><span>手机å�·éªŒè¯�</span></a></h2><h3 id="简述" tabindex="-1"><a class="header-anchor" href="#简述"><span>简述</span></a></h3><p>有时使用密ç �登录时, æ— è®ºä½¿ç”¨ç½‘é¡µç«¯è¿˜æ˜¯æ‰‹æœºç«¯æŽ¥å�£, 由于 请求头缺失/请求频率高/请求IP ç‰åŽŸå› , 会返回如下内容, æ¤æ—¶éœ€è¦�进行手机å�·éªŒè¯�或绑定</p><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "code"</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "message"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"0"</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "ttl"</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "data"</span><span style="color:#D4D4D4;">: {</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "is_new"</span><span style="color:#D4D4D4;">: </span><span style="color:#569CD6;">false</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "status"</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">2</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "message"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"本次登录环境å˜åœ¨é£Žé™©, 需使用手机å�·è¿›è¡ŒéªŒè¯�或绑定"</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "url"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"https://passport.bilibili.com/h5-app/passport/risk/verify?tmp_token=imtmptk&request_id=imreqid&source=risk"</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "refresh_token"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">""</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "timestamp"</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "hint"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">""</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "in_reg_audit"</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="获å�–-captcha" tabindex="-1"><a class="header-anchor" href="#获å�–-captcha"><span>获å�– captcha</span></a></h3><blockquote><p>https://passport.bilibili.com/x/safecenter/captcha/pre</p></blockquote><p><em>请求方法: POST</em></p><p><strong>æ£æ–‡å�‚æ•° (application/x-www-form-urlencoded):</strong></p><table><thead><tr><th>å�‚æ•°å��</th><th>类型</th><th>内容</th><th>å¿…è¦�性</th><th>备注</th></tr></thead><tbody><tr><td>source</td><td>str</td><td>risk</td><td>ä¸�å¿…è¦�</td><td></td></tr></tbody></table><p><strong>JSON 回å¤�:</strong></p><p>æ ¹å¯¹è±¡:</p><table><thead><tr><th>å—æ®µ</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0: æˆ�功</td></tr><tr><td>message</td><td>str</td><td>错误信æ�¯</td><td>默认为 0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>æ•°æ�®æœ¬ä½“</td><td></td></tr></tbody></table><p><code>data</code> 对象:</p><table><thead><tr><th>å—æ®µ</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>recaptcha_type</td><td>str</td><td>验è¯�ç �类型</td><td>ç›®å‰�ä»… <code>geetest</code></td></tr><tr><td>recaptcha_token</td><td>str</td><td>验è¯�ç � token</td><td></td></tr><tr><td>gee_challenge</td><td>str</td><td>æž�验 challenge</td><td></td></tr><tr><td>gee_gt</td><td>str</td><td>æž�验 gt</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -X</span><span style="color:#CE9178;"> POST</span><span style="color:#CE9178;"> 'https://passport.bilibili.com/x/safecenter/captcha/pre'</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><details><summary>查看å“�应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "code"</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "message"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"0"</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "ttl"</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "data"</span><span style="color:#D4D4D4;">: {</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "recaptcha_type"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"geetest"</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "recaptcha_token"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"8a418aa9eebe411599d759fc318d55e1"</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "gee_challenge"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"4e5353e7ab9f9aef0c97fa5a5b1ad101"</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "gee_gt"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"ac597a4506fee079629df5d8b66dd4fe"</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="å�‘é€�验è¯�ç �" tabindex="-1"><a class="header-anchor" href="#å�‘é€�验è¯�ç �"><span>å�‘é€�验è¯�ç �</span></a></h3><blockquote><p>https://passport.bilibili.com/x/safecenter/common/sms/send</p></blockquote><p><em>请求方法: POST</em></p><p><strong>æ£æ–‡å�‚æ•° (application/x-www-form-urlencoded):</strong></p><table><thead><tr><th>å�‚æ•°å��</th><th>类型</th><th>内容</th><th>å¿…è¦�性</th><th>备注</th></tr></thead><tbody><tr><td>tmp_code</td><td>str</td><td>url query ä¸çš„ tmp_code</td><td>å¿…è¦�</td><td>å�‚è§� <a href="#%E7%AE%80%E8%BF%B0">简述</a> ä¸ JSON 示例ä¸çš„ <code>url</code></td></tr><tr><td>sms_type</td><td>str</td><td><code>loginTelCheck</code></td><td>å¿…è¦�</td><td></td></tr><tr><td>recaptcha_token</td><td>str</td><td>验è¯�ç � token</td><td>å¿…è¦�</td><td>å�‚è§� <a href="#%E8%8E%B7%E5%8F%96-captcha">获å�– captcha</a></td></tr><tr><td>gee_challenge</td><td>str</td><td>æž�验 challenge</td><td>å¿…è¦�</td><td>å�‚è§� <a href="#%E8%8E%B7%E5%8F%96-captcha">获å�– captcha</a></td></tr><tr><td>gee_validate</td><td>str</td><td>æž�验 validate</td><td>å¿…è¦�</td><td>验è¯�å�ŽèŽ·å¾—</td></tr><tr><td>gee_seccode</td><td>str</td><td>æž�验 seccode</td><td>å¿…è¦�</td><td>验è¯�å�ŽèŽ·å¾—</td></tr></tbody></table><p><strong>JSON回å¤�:</strong></p><p>æ ¹å¯¹è±¡:</p><table><thead><tr><th>å—æ®µ</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0: æˆ�功</td></tr><tr><td>message</td><td>str</td><td>错误信æ�¯</td><td>默认为 0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>æ•°æ�®æœ¬ä½“</td><td></td></tr></tbody></table><p><code>data</code> 对象:</p><table><thead><tr><th>å—æ®µ</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>captcha_key</td><td>str</td><td>验è¯�ç � key</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>å�‡è®¾ <code>tmp_code</code> 为 <code>imtmptk</code>, <code>recaptcha_token</code> 为 <code>kfc</code>, <code>gee_challenge</code> 为 <code>crazythursday</code>, <code>gee_validate</code> 为 <code>vivo50</code>, <code>gee_seccode</code> 为 <code>vivo50|jordan</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -X</span><span style="color:#CE9178;"> POST</span><span style="color:#CE9178;"> 'https://passport.bilibili.com/x/safecenter/common/sms/send'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'tmp_code=imtmptk'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'sms_type=loginTelCheck'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'recaptcha_token=kfc'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'gee_challenge=crazythursday'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'gee_validate=vivo50'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'gee_seccode=vivo50|jordan'</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看�应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "code"</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "message"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"0"</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "ttl"</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "data"</span><span style="color:#D4D4D4;">: {</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "captcha_key"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"42403fb08ed2cd97afff14edefbae482"</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="验è¯�手机验è¯�ç �" tabindex="-1"><a class="header-anchor" href="#验è¯�手机验è¯�ç �"><span>验è¯�手机验è¯�ç �</span></a></h3><blockquote><p>https://passport.bilibili.com/x/safecenter/login/tel/verify</p></blockquote><p><em>请求方法: POST</em></p><p><strong>æ£æ–‡å�‚æ•° (application/x-www-form-urlencoded):</strong></p><table><thead><tr><th>å�‚æ•°å��</th><th>类型</th><th>内容</th><th>å¿…è¦�性</th><th>备注</th></tr></thead><tbody><tr><td>tmp_code</td><td>str</td><td>url query ä¸çš„ tmp_code</td><td>å¿…è¦�</td><td>å�‚è§� <a href="#%E7%AE%80%E8%BF%B0">简述</a> ä¸ JSON 示例ä¸çš„ <code>url</code></td></tr><tr><td>captcha_key</td><td>str</td><td>验è¯�ç � key</td><td>å¿…è¦�</td><td>å�‚è§� <a href="#%E5%8F%91%E9%80%81%E9%AA%8C%E8%AF%81%E7%A0%81">å�‘é€�验è¯�ç �</a></td></tr><tr><td>type</td><td>str</td><td><code>loginTelCheck</code></td><td>å¿…è¦�</td><td></td></tr><tr><td>code</td><td>num</td><td>接收到的验è¯�ç �</td><td>å¿…è¦�</td><td></td></tr><tr><td>request_id</td><td>str</td><td>url query ä¸çš„ request_id</td><td>å¿…è¦�</td><td>å�‚è§� <a href="#%E7%AE%80%E8%BF%B0">简述</a> ä¸ JSON 示例ä¸çš„ <code>url</code></td></tr><tr><td>source</td><td>str</td><td>risk</td><td>å¿…è¦�</td><td></td></tr></tbody></table><p><strong>JSON回å¤�:</strong></p><p>æ ¹å¯¹è±¡:</p><table><thead><tr><th>å—æ®µ</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0: æˆ�功</td></tr><tr><td>message</td><td>str</td><td>错误信æ�¯</td><td>默认为 0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>æ•°æ�®æœ¬ä½“</td><td></td></tr></tbody></table><p><code>data</code> 对象:</p><table><thead><tr><th>å—æ®µ</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>str</td><td>交æ�¢ä»£ç �</td><td>用于å�Žé�¢ <a href="#%E4%BA%A4%E6%8D%A2-cookie">交æ�¢ Cookie</a></td></tr></tbody></table><p><strong>示例:</strong></p><p>å�‡è®¾ <code>tmp_code</code> 为 <code>imtmptk</code>, <code>captcha_key</code> 为 <code>42403fb08ed2cd97afff14edefbae482</code>, <code>code</code> 为 <code>114514</code>, <code>request_id</code> 为 <code>imreqid</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -X</span><span style="color:#CE9178;"> POST</span><span style="color:#CE9178;"> 'https://passport.bilibili.com/x/safecenter/login/tel/verify'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'tmp_code=imtmptk'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'captcha_key=42403fb08ed2cd97afff14edefbae482'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'type=loginTelCheck'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'code=114514'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode</span><span style="color:#CE9178;">'request_id=imreqid'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode</span><span style="color:#CE9178;">'source=risk'</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看�应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "code"</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "message"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"0"</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "ttl"</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "data"</span><span style="color:#D4D4D4;">: {</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "code"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"6eadf783c55a387b143773282b217682"</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="交æ�¢-cookie" tabindex="-1"><a class="header-anchor" href="#交æ�¢-cookie"><span>交æ�¢ Cookie</span></a></h3><blockquote><p>https://passport.bilibili.com/x/passport-login/web/exchange_cookie</p></blockquote><p><em>请求方法: POST</em></p><p><strong>æ£æ–‡å�‚æ•° (application/x-www-form-urlencoded):</strong></p><table><thead><tr><th>å�‚æ•°å��</th><th>类型</th><th>内容</th><th>å¿…è¦�性</th><th>备注</th></tr></thead><tbody><tr><td>source</td><td>str</td><td>risk</td><td>å¿…è¦�</td><td></td></tr><tr><td>code</td><td>str</td><td>交æ�¢ä»£ç �</td><td>å¿…è¦�</td><td>å�‚è§� <a href="#%E9%AA%8C%E8%AF%81%E6%89%8B%E6%9C%BA%E9%AA%8C%E8%AF%81%E7%A0%81">验è¯�手机验è¯�ç �</a></td></tr></tbody></table><p><strong>JSON回å¤�:</strong></p><p>æ ¹å¯¹è±¡:</p><table><thead><tr><th>å—æ®µ</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>返回值</td><td>0: æˆ�功</td></tr><tr><td>message</td><td>str</td><td>错误信æ�¯</td><td>默认为 0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td></td></tr><tr><td>data</td><td>obj</td><td>æ•°æ�®æœ¬ä½“</td><td></td></tr></tbody></table><p><code>data</code> 对象:</p><table><thead><tr><th>å—æ®µ</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>url</td><td>str</td><td>游æˆ�分站跨域登录 url</td><td></td></tr><tr><td>refresh_token</td><td>str</td><td>刷新 token</td><td></td></tr></tbody></table><p><strong>示例:</strong></p><p>å�‡è®¾ <code>code</code> 为 <code>6eadf783c55a387b143773282b217682</code></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -X</span><span style="color:#CE9178;"> POST</span><span style="color:#CE9178;"> 'https://passport.bilibili.com/x/passport-login/web/exchange_cookie'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'code=6eadf783c55a387b143773282b217682'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode</span><span style="color:#CE9178;">'source=risk'</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看�应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "code"</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "message"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"0"</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "ttl"</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "data"</span><span style="color:#D4D4D4;">: {</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "url"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"https://passport.biligame.com/x/passport-login/web/crossDomain?DedeUserID=645769214&DedeUserID__ckMd5=653409864bf9e200&Expires=1739265009&SESSDATA=11d97d2a,1739265009,928d7*82CjCKOhDRm5gROpSfgQ7B2axGVMWm5LuwNTkNDK2vjeGl7xvAsfsCINKmczXvO_Z45FsSVlJ1NHdlYlpSei1lYjdqUXRMaUpuRk9GbjVPS0psc3ZTcDFGRjhnNGhIbHRlZ0ZQRWQ1MUlUY2pnQ0lkTVRYNjlabmlUWGxHcVdkV3hrcElpa0ZEZEZRIIEC&bili_jct=3cdee5b84eb48d4f08bcfd57b58cf40b&gourl=https%3A%2F%2Fwww.bilibili.com%2F&first_domain=.bilibili.com"</span><span style="color:#D4D4D4;">,</span></span>
|
|||
|
|
<span class="line"><span style="color:#9CDCFE;"> "refresh_token"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"43de156ad241864640f9d9721656a682"</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><details><summary>查看�应头部示例:</summary><div class="language-http line-numbers-mode" data-highlighter="shiki" data-ext="http" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-http"><span class="line"><span style="color:#D4D4D4;">HTTP/2 </span><span style="color:#B5CEA8;">200</span><span style="color:#CE9178;"> OK</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">date:</span><span style="color:#CE9178;"> Thu, 15 Aug 2024 09:10:09 GMT</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">content-type:</span><span style="color:#CE9178;"> application/json; charset=utf-8</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">access-control-allow-credentials:</span><span style="color:#CE9178;"> true</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">access-control-allow-methods:</span><span style="color:#CE9178;"> GET,POST,PUT,DELETE</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">access-control-allow-origin:</span><span style="color:#CE9178;"> https://passport.bilibili.com</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">bili-status-code:</span><span style="color:#CE9178;"> 0</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">bili-trace-id:</span><span style="color:#CE9178;"> 175262647666bdc5</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">set-cookie:</span><span style="color:#CE9178;"> SESSDATA=xxxxxxx; Path=/; Domain=bilibili.com; Expires=Tue, 11 Feb 2025 09:10:09 GMT; HttpOnly; Secure</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">set-cookie:</span><span style="color:#CE9178;"> bili_jct=xxxxxxxxxxxxxxxxxxxxxxxxx; Path=/; Domain=bilibili.com; Expires=Tue, 11 Feb 2025 09:10:09 GMT</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">set-cookie:</span><span style="color:#CE9178;"> DedeUserID=114514191; Path=/; Domain=bilibili.com; Expires=Tue, 11 Feb 2025 09:10:09 GMT</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">set-cookie:</span><span style="color:#CE9178;"> DedeUserID__ckMd5=0123456789abcdef; Path=/; Domain=bilibili.com; Expires=Tue, 11 Feb 2025 09:10:09 GMT</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">set-cookie:</span><span style="color:#CE9178;"> sid=xxxxxxxx; Path=/; Domain=bilibili.com; Expires=Tue, 11 Feb 2025 09:10:09 GMT</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">vary:</span><span style="color:#CE9178;"> Origin</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">x-bili-trace-id:</span><span style="color:#CE9178;"> 60f0305e2abc511d175262647666bdc5</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">access-control-allow-headers:</span><span style="color:#CE9178;"> Origin,No-Cache,X-Requested-With,If-Modified-Since,Pragma,Last-Modified,Cache-Control,Expires,Content-Type,Access-Control-Allow-Credentials,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Cache-Webcdn,x-bilibili-key-real-ip,x-backend-bili-real-ip,x-risk-header</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">cross-origin-resource-policy:</span><span style="color:#CE9178;"> cross-origin</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">access-control-expose-headers:</span><span style="color:#CE9178;"> X-Bili-Gaia-Vvoucher,X-Bili-Trace-Id</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">expires:</span><span style="color:#CE9178;"> Thu, 15 Aug 2024 09:10:08 GMT</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">cache-control:</span><span style="color:#CE9178;"> no-cache</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">x-cache-webcdn:</span><span style="color:#CE9178;"> BYPASS from blzone01</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">content-encoding:</span><span style="color:#CE9178;"> br</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">X-Firefox-Spdy:</span><span style="color:#CE9178;"> h2</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,110))])}const b=p(c,[["render",D]]),m=JSON.parse('{"path":"/docs/login/login_action/password.html","title":"密ç �登录","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1726759053000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":3,"url":"https://github.com/SocialSisterYi"},{"name":"LaMerChiang","username":"LaMerChiang","email":"catlair@qq.com","commits":1,"url":"https://github.com/LaMerChiang"},{"name":"SessionHu","username":"SessionHu","email":"102411014+SessionHu@users.noreply.github.com","commits":2,"url":"https://github.com/SessionHu"}],"changelog":[{"hash":"1e24c6b1889160c4c35c01416aa4239501accf5f","time":1726759053000,"email":"102411014+SessionHu@users.noreply.github.com","author":"Sessionå°�胡","message":"调整部分接å�£æ��述与错误修å¤� (#1088)","coAuthors":[{"name":"社会易å§�QwQ","email":"45892418+SocialSisterYi@users.noreply.github.com"}]},{"hash":"60a0c5d1a2f44fe61335da04571305fa7727a968","time":1724238159000,"email":"102411014+SessionHu@users.noreply.github.com","author":"Sessionå°�胡","message":"feat: å�„ç§�接å�£è¡¥å……ä¸Žé”™è¯¯ä¿®æ£ (#1066)"},{"hash":"92b30f354ab21b97fe52357161fd04e2ca687c97","time":1693842068000,"email":"catlair@qq.com","author":"LaMerChiang","message":"fix: ä¿®æ£æ–‡æ¡£ä¸å˜åœ¨çš„é”™è¯¯è·¯å¾„ï¼Œæ ‡ç¾å’Œç›®å½• (#806)"},{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/login/login_action/password.md"}');export{b as comp,m as data};
|