哔哩哔哩扫码登陆流程

扫码登陆流程

1、获取登陆二维码链接和 qrcode_key值。

2、获取扫码状态链接,判断是否扫码四种状态:未扫码、已扫码等待确认、确认后返回cookie参数值、二维码失效。

3、获取根据cookie判断是否有效登陆的api链接。

获取登陆二维码

GET请求下方链接

通过返回数据获取客户端登陆时的二维码链接,和qrcode_key

{
	"code": 0,
	"message": "0",
	"ttl": 1,
	"data": {
		"url": "https://passport.bilibili.com/h5-app/passport/login/scan?navhide=1\u0026qrcode_key=0f4728659c96c34a2f57b2be4fc46dea\u0026from=main-web",
		"qrcode_key": "0f4728659c96c34a2f57b2be4fc46dea"
	}
}

其中date.url中的链接生成二维码,以便在手机端扫码。

获取二维码状态

循环调用此api获取扫码状态

GET请求下方链接,获取二维码四种状态

返回未扫码数据

{"code":0,"message":"0","ttl":1,"data":{"url":"","refresh_token":"","timestamp":0,"code":86101,"message":"未扫码"}}

返回已扫码待确认数据

{"code":0,"message":"0","ttl":1,"data":{"url":"","refresh_token":"","timestamp":0,"code":86090,"message":"二维码已扫码未确认"}}

扫码确认后返回带参数的跳转链接,其中的参数是为cookie所需的。

{"code":0,"message":"0","ttl":1,"data":{"url":"https://passport.biligame.com/crossDomain?DedeUserID=\u0026DedeUserID__ckMd5=eae8d42ea7ff0e7\u0026Expires=1676222315\u0026SESSDATA=1171ddf5,1676222315,19fee*81\u0026bili_jct=401a2bd1025cb4d86f23ef917621a1e\u0026gourl=https%3A%2F%2Fpassport.bilibili.com","refresh_token":"013f5ba72d29f7ade45b3ad03f0db81","timestamp":1660670315250,"code":0,"message":""}}

返回二维码失效数据

{"code":0,"message":"0","ttl":1,"data":{"url":"","refresh_token":"","timestamp":0,"code":86038,"message":"二维码已失效"}}

由于每次登陆时的二维码不同,超过一定时间还会失效,所以二维码生成时的链接会有参数值,而参数为 qr_code=xxxxxxxxxxxxxxx 通过GET请求获取带有登陆二维码的链接和qr_code的api链接,返回参数为json格式的数据。

使用二维码状态api+参数qr_code 可以判断二维码的四种状态。

图片[1] | 哔哩哔哩扫码登陆流程 | 友幻猫

另外有判断cookie是否有效登陆的api

https://api.bilibili.com/x/web-interface/nav

GET请求时带cookie请求。

© 版权声明
THE END
喜欢就支持一下吧
点赞12请喝杯茶 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容