Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

为什么手机端首页推荐有时返回鉴权失败? #533

Open
SpaceXC opened this issue Nov 19, 2022 · 35 comments
Open

为什么手机端首页推荐有时返回鉴权失败? #533

SpaceXC opened this issue Nov 19, 2022 · 35 comments
Labels
问题/Question 暂时无法确定的性质

Comments

@SpaceXC
Copy link
Contributor

SpaceXC commented Nov 19, 2022

之前用http://app.bilibili.com/x/v2/feed/index这个接口一直好好的,这两天有时会报错,查看返回值为

{
    "code": -663,
    "message": "鉴权失败,请联系账号组",
    "ttl": 1
}

关键这玩意时不时还能正常一下,后面确实每一次都有带上access key,cookies也都正常

@DandyChan
Copy link

我也遇到了同样的问题

@SocialSisterYi
Copy link
Owner

检测appkey``appSecsign的正确性,以及build等环境参数

@SocialSisterYi SocialSisterYi added the 问题/Question 暂时无法确定的性质 label Nov 23, 2022
@SpaceXC
Copy link
Contributor Author

SpaceXC commented Nov 23, 2022

谢谢,这两天正常了,postman里面只带了个access_key也能成功

@ywmoyue
Copy link
Contributor

ywmoyue commented Dec 11, 2022

我也遇到了同样的问题

@SpaceXC
Copy link
Contributor Author

SpaceXC commented Dec 11, 2022

这个bug这两天又出现了,稳定复现了一段时间之后刚刚又成功了。且好几次都没问题。不知道是什么问题,有条件的可以抓一下b站官方客户端手机版的包或者先用用web端的首页推荐

@SpaceXC
Copy link
Contributor Author

SpaceXC commented Dec 11, 2022

我的请求参数为了省事只带了用于验证身份的access_key,其他cookies也就是扫码登录设置的一堆还有get一下首页所获取的cookies

@SpaceXC
Copy link
Contributor Author

SpaceXC commented Dec 11, 2022

看见提及了这个issue的别处有大佬猜测可能是access_key过期,我认为基本不可能,因为我在postman中的access_key好久没有更新过了,期间还有过因为更换ip地址过于频繁,而导致的大会员被暂时冻结,之后要求更改密码,从而全部客户端被强制下线的经历

@SpaceXC
Copy link
Contributor Author

SpaceXC commented Dec 11, 2022

整理了一下总结了几个结论
1.登录状态正常且带access_key时,大概率返回-663(鉴权失败)
2.登录状态不正常(如被强制下线),带不带access_key都是大概率正常
3.不带access_key大概率成功
以上所述之"登录状态"皆以cookies作为标准

@cxw620
Copy link
Contributor

cxw620 commented Dec 11, 2022

-663的直接原因已经找到了(? pchpub/BiliRoaming-Rust-Server#85 (comment)

@cxw620
Copy link
Contributor

cxw620 commented Dec 11, 2022

看见提及了这个issue的别处有大佬猜测可能是access_key过期,我认为基本不可能,因为我在postman中的access_key好久没有更新过了,期间还有过因为更换ip地址过于频繁,而导致的大会员被暂时冻结,之后要求更改密码,从而全部客户端被强制下线的经历

我的access_key是被刷新了的

error -663可能原因大抵如下:

  • 最近加强风控, 请求不规范, 这个access_key被风控了, 更加容易-663
  • B站自己抽风了

error 61000的可能原因是

  • access_key过期
  • 用户频繁更换ip被风控, 强制下线了

@SpaceXC
Copy link
Contributor Author

SpaceXC commented Dec 11, 2022

我的群里有些伙伴也反映别的应用有这个问题,不只是我,别的请求比较规范的软件(如腕上哔哩/哔哩喵)也包含这个问题,所以第一点我持保留意见
第二点原因,为什么官方客户端没问题

https://github.com/pchpub/BiliRoaming-Rust-Server/pull/85#issuecomment-1345430924的解决方案我也试了,貌似没什么用

我的app中的错误:
0F893B395323D89076A9FB513A35AC17
AAC5F3872C1C1B79CA406E38A36E408B

按照https://github.com/pchpub/BiliRoaming-Rust-Server/pull/85#issuecomment-1345430924的解决方案:
image

@SpaceXC
Copy link
Contributor Author

SpaceXC commented Dec 11, 2022

问题解决pchpub/BiliRoaming-Rust-Server@be3398f

@pchpub
Copy link

pchpub commented Dec 11, 2022

问题解决pchpub/BiliRoaming-Rust-Server@be3398f

看来猜对了,eid指定了服务器

@ywmoyue
Copy link
Contributor

ywmoyue commented Dec 11, 2022

首页推荐的接口解决了,但是获取追番列表的接口仍然会返回-663
image

@SpaceXC
Copy link
Contributor Author

SpaceXC commented Dec 11, 2022

首页推荐的接口解决了,但是获取追番列表的接口仍然会返回-663 image

看起来你并没有指定eid

试试在header处设置x-bili-aurora-eid = UlMFQVcABlAH

@ywmoyue
Copy link
Contributor

ywmoyue commented Dec 11, 2022

首页推荐的接口解决了,但是获取追番列表的接口仍然会返回-663 image

看起来你并没有指定eid

试试在header处设置x-bili-aurora-eid = UlMFQVcABlAH

我试着加了x-bili-aurora-eid = UlMFQVcABlAH,但是仍然返回-663,然后我发现查询表情列表这个接口也有这个问题
image

@cxw620
Copy link
Contributor

cxw620 commented Dec 11, 2022

首页推荐的接口解决了,但是获取追番列表的接口仍然会返回-663 image

看起来你并没有指定eid
试试在header处设置x-bili-aurora-eid = UlMFQVcABlAH

我试着加了x-bili-aurora-eid = UlMFQVcABlAH,但是仍然返回-663,然后我发现查询表情列表这个接口也有这个问题 image

image
有三个, 还得加个app-key -> android64

@ywmoyue
Copy link
Contributor

ywmoyue commented Dec 11, 2022

再加上app-key -> android64的我试了追番列表这个接口还是不行,查询表情包这个接口我改成使用cookie方式鉴权就可以了

@ywmoyue
Copy link
Contributor

ywmoyue commented Dec 13, 2022

现在首页推荐又返回663了,即使加了那几个参数

@SpaceXC
Copy link
Contributor Author

SpaceXC commented Dec 13, 2022

确实

@SpaceXC
Copy link
Contributor Author

SpaceXC commented Dec 13, 2022

直接从app抓到的包复制下来的,删掉了一些参数,我现在用的url为http://app.bilibili.com/x/v2/feed/index?access_key=${&actionKey}=appkey&appkey=27eb53fc9058f8c3&build=70000100&c_locale=zh-Hans_CN&column=1&disable_rcmd=0&flush=0&fnval=976&fnver=0&force_host=0&fourk=1&guidance=1&https_url_req=0&login_event=2&pull=1&qn=32&recsys_mode=0&s_locale=zh-Hans_CH&screen_window_type=0,目前看起来没什么问题,并且没有设置上述的headers,还没有时间研究每个param什么意思
image

app原始参数:
/x/v2/feed/index?access_key=${accessKey}&actionKey=appkey&ad_extra=F6209EEC4D712ADB7AAF94480A782BC7950388FC2329C9E2165CFD5E60A838B233A1CF26881D057A50D3E955CF478D914EE341A3AE5E6482556F7651FB0C7CF7D4078E8843ECB06DF5F4D57901EDCDADE34B8799A7BBB2D4AF09438B6CB141A8582F099D6F2C6DF3D0E328DA44B7ADC86167723A088A6099DAC259A5D5AAB4A5BA01058F31CF8C004D03520063D0B34CF47AF8675AB26F514A006363E0BF7131CE3CC7A3CA164E386A24D7E689030881B1B49A24A5052A15359F61311667A182F976498A5C81BF025A20F5935D58C7EC31A790F73B16045947435AECC8AC624254655E376A3FDF9DB1EE924F95B5D6E81731718E7CE1DFAC5959891E41A8314721F50B14B03410B1DA55F645525D4373105E406222664412B2A426E13ECAC5E9F612371F8DB86A99EADE4F3D9BC868F75CB847F60F7C2128846675877E8209D3E3A4634CB658D02A4D679DBC21D56C9F0C19E66645970C0857A54BE7918CAE7245476208F46AF67B39E44184D30E935500FE05A7000659A99DC27003793EC9FE6FAADE22455A8BED6F43A6DFBAF069139C49CF0A13E0BD0CA070D23B416863081FC1F05DF2D08C3D4DDF65B5162980FBC664D9B0F79432F8E4F8D6E8D4DC12B5E4248BE4791FBEDE64703DFE6EB4613BF2055CE5ECA8E5AB0644D147CC241D667D6776AE957BB41AB688430B9AC4FFB235631F3C74CD2564624DF20AE021C2349ADAA79EF9504D96E9EE4E042413FA9288E45B119BF1D6F6AAE7D5D1E9B673D1F34D9544CFBAC788921B6354D650283E4E98D12F7F22DD327972580A7E3D4AA3E530C9BBEA9EA0060BAADC244D1B1526B57BF21CDCA3E8C3D37CA1B98C410A2F68DCA9D1A915EF3A7EAFD9FCFF9436D6AB31FF11E2FF79B7DB8C291C0333CF2D1EE723A0E05062F7A2EAD3826BC8DED4104F60C5A6F4BA72C21B47CBA14F04F8F3FE8F96B1F8D0DBA3C10A34888012E47AAD612C79495DFCF6C867D0F4DE2AE5F65637C409FC2A76A5FB2B008737E97D198A4249D2D51D484999BEC22E4945AB254F4E9A8DA4C5AB93473E0BF08E1A4B181A2C099FFCBBD01A0F83221E8FFD0C509B98DF25B6E6A4FFFF5633DEF5B024F73B76137404E9D9A8E4D01FB054B42B3431B21B8548287979DCF7EA7E3843E3A8A78B05864E1C47078697A664F2E9C3A351CAAE15555BAF5C4C5AE876ED90FE349A62E2DDA8C433B542266EA5F65876BAE329EEC8EFBE6B69986CB2C1C1E0A58A4A128D2DA06D7448D9C65FC40B248C&appkey=27eb53fc9058f8c3&autoplay_card=2&banner_hash=&build=70000100&c_locale=zh-Hans_CN&column=1&device=pad&device_name=iPad%20Pro%2012.9-Inch%203G&disable_rcmd=0&flush=0&fnval=976&fnver=0&force_host=0&fourk=1&guidance=1&https_url_req=0&idx=1646228348&login_event=2&mobi_app=iphone&network=wifi&open_event=cold&platform=ios&pull=1&qn=32&recsys_mode=0&s_locale=zh-Hans_CH&screen_window_type=0&sign=7fdd3de4704c34fdf051c5dd52e9e8c4&splash_id=&statistics=%7B%22appId%22%3A1%2C%22version%22%3A%227.0.0%22%2C%22abtest%22%3A%22%22%2C%22platform%22%3A2%7D&ts=1670935712
image
(我用的是charles抓的app store下载的ios版本)

@SpaceXC
Copy link
Contributor Author

SpaceXC commented Dec 13, 2022

http://app.biliapi.com/ 也可以作为根域名访问此api

@cxw620
Copy link
Contributor

cxw620 commented Dec 14, 2022

直接从app抓到的包复制下来的,删掉了一些参数,我现在用的url为http://app.bilibili.com/x/v2/feed/index?access_key=${&actionKey}=appkey&appkey=27eb53fc9058f8c3&build=70000100&c_locale=zh-Hans_CN&column=1&disable_rcmd=0&flush=0&fnval=976&fnver=0&force_host=0&fourk=1&guidance=1&https_url_req=0&login_event=2&pull=1&qn=32&recsys_mode=0&s_locale=zh-Hans_CH&screen_window_type=0,目前看起来没什么问题,并且没有设置上述的headers,还没有时间研究每个param什么意思 image

app原始参数: /x/v2/feed/index?access_key=${accessKey}&actionKey=appkey&ad_extra=F6209EEC4D712ADB7AAF94480A782BC7950388FC2329C9E2165CFD5E60A838B233A1CF26881D057A50D3E955CF478D914EE341A3AE5E6482556F7651FB0C7CF7D4078E8843ECB06DF5F4D57901EDCDADE34B8799A7BBB2D4AF09438B6CB141A8582F099D6F2C6DF3D0E328DA44B7ADC86167723A088A6099DAC259A5D5AAB4A5BA01058F31CF8C004D03520063D0B34CF47AF8675AB26F514A006363E0BF7131CE3CC7A3CA164E386A24D7E689030881B1B49A24A5052A15359F61311667A182F976498A5C81BF025A20F5935D58C7EC31A790F73B16045947435AECC8AC624254655E376A3FDF9DB1EE924F95B5D6E81731718E7CE1DFAC5959891E41A8314721F50B14B03410B1DA55F645525D4373105E406222664412B2A426E13ECAC5E9F612371F8DB86A99EADE4F3D9BC868F75CB847F60F7C2128846675877E8209D3E3A4634CB658D02A4D679DBC21D56C9F0C19E66645970C0857A54BE7918CAE7245476208F46AF67B39E44184D30E935500FE05A7000659A99DC27003793EC9FE6FAADE22455A8BED6F43A6DFBAF069139C49CF0A13E0BD0CA070D23B416863081FC1F05DF2D08C3D4DDF65B5162980FBC664D9B0F79432F8E4F8D6E8D4DC12B5E4248BE4791FBEDE64703DFE6EB4613BF2055CE5ECA8E5AB0644D147CC241D667D6776AE957BB41AB688430B9AC4FFB235631F3C74CD2564624DF20AE021C2349ADAA79EF9504D96E9EE4E042413FA9288E45B119BF1D6F6AAE7D5D1E9B673D1F34D9544CFBAC788921B6354D650283E4E98D12F7F22DD327972580A7E3D4AA3E530C9BBEA9EA0060BAADC244D1B1526B57BF21CDCA3E8C3D37CA1B98C410A2F68DCA9D1A915EF3A7EAFD9FCFF9436D6AB31FF11E2FF79B7DB8C291C0333CF2D1EE723A0E05062F7A2EAD3826BC8DED4104F60C5A6F4BA72C21B47CBA14F04F8F3FE8F96B1F8D0DBA3C10A34888012E47AAD612C79495DFCF6C867D0F4DE2AE5F65637C409FC2A76A5FB2B008737E97D198A4249D2D51D484999BEC22E4945AB254F4E9A8DA4C5AB93473E0BF08E1A4B181A2C099FFCBBD01A0F83221E8FFD0C509B98DF25B6E6A4FFFF5633DEF5B024F73B76137404E9D9A8E4D01FB054B42B3431B21B8548287979DCF7EA7E3843E3A8A78B05864E1C47078697A664F2E9C3A351CAAE15555BAF5C4C5AE876ED90FE349A62E2DDA8C433B542266EA5F65876BAE329EEC8EFBE6B69986CB2C1C1E0A58A4A128D2DA06D7448D9C65FC40B248C&appkey=27eb53fc9058f8c3&autoplay_card=2&banner_hash=&build=70000100&c_locale=zh-Hans_CN&column=1&device=pad&device_name=iPad%20Pro%2012.9-Inch%203G&disable_rcmd=0&flush=0&fnval=976&fnver=0&force_host=0&fourk=1&guidance=1&https_url_req=0&idx=1646228348&login_event=2&mobi_app=iphone&network=wifi&open_event=cold&platform=ios&pull=1&qn=32&recsys_mode=0&s_locale=zh-Hans_CH&screen_window_type=0&sign=7fdd3de4704c34fdf051c5dd52e9e8c4&splash_id=&statistics=%7B%22appId%22%3A1%2C%22version%22%3A%227.0.0%22%2C%22abtest%22%3A%22%22%2C%22platform%22%3A2%7D&ts=1670935712 image (我用的是charles抓的app store下载的ios版本)

稳妥起见, 里面的头参数还是得扒一扒来源...

@DandyChan
Copy link

去抓了安卓app的接口来用,即便直接拿接口来用,只能在postman上有返回,项目运行起来也是鉴权失败

@cxw620
Copy link
Contributor

cxw620 commented Dec 14, 2022

去抓了安卓app的接口来用,即便直接拿接口来用,只能在postman上有返回,项目运行起来也是鉴权失败

现在是开始封杀第三方客户端吧, 没办法做到完全模仿官方客户端, 很容易被识别. 必要的时候还是得逆向工程分析这些头部哪来的, 参数哪来的. 只不过工程量非常大, 也要求精通安卓逆向...

@DandyChan
Copy link

去抓了安卓app的接口来用,即便直接拿接口来用,只能在postman上有返回,项目运行起来也是鉴权失败

现在是开始封杀第三方客户端吧, 没办法做到完全模仿官方客户端, 很容易被识别. 必要的时候还是得逆向工程分析这些头部哪来的, 参数哪来的. 只不过工程量非常大, 也要求精通安卓逆向...

难顶...我只是想在PC也能看首页推荐而已...

@ywmoyue
Copy link
Contributor

ywmoyue commented Dec 14, 2022

试了下暗影吉他手的uwp似乎没问题

@SpaceXC
Copy link
Contributor Author

SpaceXC commented Dec 14, 2022

我的android应用没问题的

@SpaceXC
Copy link
Contributor Author

SpaceXC commented Dec 14, 2022

去抓了安卓app的接口来用,即便直接拿接口来用,只能在postman上有返回,项目运行起来也是鉴权失败

可能是postman当中有些cookies没在项目中获取,可以尝试抓包看看有哪些cookies在调用一些url时被设置到了的,get几个根域名可以解决很多问题

@SpaceXC
Copy link
Contributor Author

SpaceXC commented Dec 14, 2022

image

@DandyChan
Copy link

去抓了安卓app的接口来用,即便直接拿接口来用,只能在postman上有返回,项目运行起来也是鉴权失败

可能是postman当中有些cookies没在项目中获取,可以尝试抓包看看有哪些cookies在调用一些url时被设置到了的,get几个根域名可以解决很多问题

属实是没搞懂,能不能细说一下

@SpaceXC
Copy link
Contributor Author

SpaceXC commented Dec 14, 2022

去抓了安卓app的接口来用,即便直接拿接口来用,只能在postman上有返回,项目运行起来也是鉴权失败

可能是postman当中有些cookies没在项目中获取,可以尝试抓包看看有哪些cookies在调用一些url时被设置到了的,get几个根域名可以解决很多问题

属实是没搞懂,能不能细说一下

就是可以自己看看官方客户端在get哪些url的时候获取到了哪些cookie

@SpaceXC
Copy link
Contributor Author

SpaceXC commented Jan 6, 2023

hmmmmm,看起来是android的appkey不行,ios的那个(27eb53fc9058f8c3)就行,和别的乱七八糟的参数貌似没啥关系

@ywmoyue
Copy link
Contributor

ywmoyue commented Jan 7, 2023

hmmmmm,看起来是android的appkey不行,ios的那个(27eb53fc9058f8c3)就行,和别的乱七八糟的参数貌似没啥关系

我试出来是使用了tv扫码登录的关系,改成web扫码登录然后用#393 这个方法获取accessKey就行了

@DandyChan
Copy link

hmmmmm,看起来是android的appkey不行,ios的那个(27eb53fc9058f8c3)就行,和别的乱七八糟的参数貌似没啥关系

因为阿B要access_keyappkey对应,也就是说用TV扫码登陆获得的access_key,后续用到的接口也只能用TV的appkey,但是现在我用TV登录获得的cookies去利用#393这个方法获得的access_key对应IOS的appkey就可以为所欲为...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
问题/Question 暂时无法确定的性质
Projects
None yet
Development

No branches or pull requests

6 participants