宝塔面板关闭强制跳转到bind手机号绑定页面

强制绑定

最近折腾腾讯云,图省事买的轻量云服务器自带了宝塔面板BTPanel,账号密码登录后这货居然要我绑定手机号,强制302跳转到了/bind页面,如上图,我不想用更好的服务,为什么就不能跳过呢?既然这样,那只能改你的代码。

定位代码

首先找入口文件:

1
/www/server/panel/__init__.py

这个文件里主要是定义路由和一些检查,发现这个面板居然是Flask写的。分析代码,在入口文件中搜索bind关键词,找到重定向的相关代码,如下图:

重定向代码

会发现调用了public.is_bind()这个方法,然后就向上找public这个变量的出处,

public来源

从上面的截图看到public来自import导入,从public这个名字和public.is_bind()看这应该是一个自定义的包,于是就在这个项目中找,发现是在/www/server/panel/class/目录中,其实从上面的截图也看得出一些端倪:

1
sys.path.insert(0, 'class/')

class/目录放在了系统路径最前面,这些就定位到了public具体位置为:

1
/www/server/panel/class/public.py

接着,迅速就定位到is_bind()出处:

is_bind

这个文件真长,大概在3160行。函数里面,我们也不用去查看get_user_info()怎么实现的了,函数直接返回True

is_bind

就这一行代码,就解决了强制绑定手机号的困扰!

最后重启BTPanel:

1
sudo bt

输入1,选择重启。

最后

重定向问题解决了,但是前端还会有弹窗:

绑定弹窗

就到这吧,暂时也不影响我使用,弹就弹吧。

后续

重装系统,远离BT Panel~