bilibili-API-collect icon indicating copy to clipboard operation
bilibili-API-collect copied to clipboard

通过cookie获得app端access_key

Open My-Responsitories opened this issue 2 years ago • 1 comments

cookie携带 SESSDATA, DedeUserID(值与uid一致) GET https://passport.bilibili.com/login/app/third?appkey=27eb53fc9058f8c3&api=http://link.acg.tv/forum.php&sign=67ec798004373253d60114caaad89a8c

此处sign计算方式不同于app的计算方式

sign=md5("api=http://link.acg.tv/forum.php"+"c2ed53a74eeefe3cf99fbd01d8c9c375")
curl 'https://passport.bilibili.com/login/app/third?appkey=27eb53fc9058f8c3&api=http://link.acg.tv/forum.php&sign=67ec798004373253d60114caaad89a8c'
  -H 'cookie: SESSDATA=***; DedeUserID=***'

响应

{
    "code": 0,
    "status": true,
    "ts": 1655265600,
    "data": {
        "api_host": "www.mcbbs.net",
        "has_login": 1,
        "direct_login": 0,
        "user_info": {"mid": "***", "uname": "***", "face": "***"},
        "confirm_uri": "https://passport.bilibili.com/login/appSuccess?api=http%3A%2F%2Flink.acg.tv%2Fforum.php&appkey=***&sign=***&mhash=***&confirm=1"
    }
}

GET "data" > "confirm_uri": https://passport.bilibili.com/login/appSuccess?api=http%3A%2F%2Flink.acg.tv%2Fforum.php&appkey=&sign=&mhash=***&confirm=1

curl -I 'https://passport.bilibili.com/login/appSuccess?api=http%3A%2F%2Flink.acg.tv%2Fforum.php&appkey=***&sign=***&mhash=***&confirm=1'
  -H 'cookie: SESSDATA=***; DedeUserID=***'

响应302

HTTP/1.1 302 Found
Location: http://link.acg.tv/forum.php?access_key=***&mid=***&uname=***&sign=***
...

重定向的param的access_key就是app端access_key

My-Responsitories avatar Jun 15 '22 10:06 My-Responsitories

好用,点赞

ffsir avatar Jul 26 '22 07:07 ffsir

用这个方法转出来的access_key好像在一些较新的接口上会出现-663错误, app抓的access_key则不会 其实是appkey与appsec被限制了, 必须要生成时所用的appkey, appsec

{"code":-663,"message":"-663","ttl":1}

My-Responsitories avatar Oct 24 '22 09:10 My-Responsitories

试了下,返回了这样的响应 {"code":0,"status":true,"ts":1688046732,"data":{"api_host":"link.acg.tv","has_login":0}}

cctyl avatar Jun 29 '23 13:06 cctyl

试了下,返回了这样的响应 {"code":0,"status":true,"ts":1688046732,"data":{"api_host":"link.acg.tv","has_login":0}} 就是获取 confirm_uri 这一步,似乎不返回了

cctyl avatar Jun 29 '23 13:06 cctyl

现在这个方法会回复: 该版本已不支持当前功能,请升级新版本! 是不是这个api已经被b站关闭了?

GD-Slime avatar Oct 27 '23 13:10 GD-Slime

该版本已不支持当前功能,请升级新版本!

应该是的

image

cxw620 avatar Oct 27 '23 14:10 cxw620

嗯,这就比较难受了。access_key还有其他的办法获取吗?

GD-Slime avatar Oct 27 '23 14:10 GD-Slime

嗯,这就比较难受了。access_key还有其他的办法获取吗?

老老实实模拟客户端登陆呗, 还能咋办.

cxw620 avatar Oct 27 '23 14:10 cxw620

接口已失效

{"code":20000,"message":"该版本已不支持当前功能,请升级新版本!"}

My-Responsitories avatar Nov 16 '23 11:11 My-Responsitories