二 掃碼登陸bilibili

2022-09-16 14:39:10 字數 3253 閱讀 4456

考慮到b站移動滑塊登陸比較難而且成功率一般

故而採用了簡單的***登陸

至少常用的pc+手機的**都支援***登入

一、登陸流程

1、判斷使用者是否已經登入了

get
2、獲取***位址

get
pip install qrcode

pip install matplotlib

4、 迴圈判斷是否掃碼

post 

data=

4、獲取個人資訊

get
**實現

二、api層 api.py

api應滿足單例模式

ajax 負責管理所有請求

新增login類負責登入

新增統一介面類bilibiliapi

bilibiliapi.login=login()三、服務層 server.py

from api import bilibiliapi as api

class login():

def __init__(self,s):

self.s=s

self.oauthkey=''

self.s._type='json'

def islogin(self):

r=api.login.islogin(self.s)

if r['code']==-101:return false

else:return self.get_info()

def get_info(self):

r=api.user.get_info(s)

self.info=r['data']

return true

def get_vdcode(self):

r=api.login.get_vdcode(self.s)

code_url=r['data']['url']

img=self.make_vdcode(code_url)

self.show_img(img)

self.oauthkey=r['data']['oauthkey']

def show_img(self,img):

import matplotlib.pyplot as plt

plt.imshow(img)

plt.show()

def make_vdcode(self,code_url):

import qrcode

return qrcode.make(code_url)

def loop_vdcode(self):

import time

r=api.login.loop_vdcode(self.s,self.oauthkey)

while not r['status']:

time.sleep(1)

r=api.login.loop_vdcode(self.s,self.oauthkey)

if r['data']==-2:

print('***已過期')

break

if r['status']:self.info=r['data']

return r['status']

四、測試**

掃碼授權登陸

手機授權掃碼登陸 首先輸入賬號密碼,進行驗證,驗證成功後顯示手機授權 這個是掃碼授權的 實現 var numt var token var t1 function getcode numt 0 t1 setinterval surestuts,3000 定時狀態確認 確認手機授權情況 functio...

微信掃碼登陸js

5 self redirect設定成true,意思是在當前 所在的iframe中跳轉,預設掃碼方式就設定成true 如果是內嵌 就必須設定成false,否則就會出現如下圖情況,在 嵌入的地方開啟重定向的網頁。無論什麼框架中使用都是在頁面載入的時候引入然後根據文件寫api即可 單頁面可以通過以下方式在...

私人筆記,微信掃碼登陸

注意 2.redirect uri 掃碼成功後跳轉的頁面 3.scope 有兩個可選值 snsapi base 或者 snsapi userinfo 其中 1 snsapi base 為scope的網頁授權,是靜默授權的,使用者無感知 2 snsapi userinfo snsapi userinf...