tysontxli / QIANGGUO

QG-Database
125 stars 38 forks source link

如何解决自动扫码登陆的问题? #22

Open tysontxli opened 5 years ago

tysontxli commented 5 years ago

要实现自主扫码登陆,单靠一台主机是无法完成的。

网页版的二维码相当于是给当前浏览器生成一个Key,手机客户端在已登录的状态下可以通过扫码获取这个Key,并告诉服务器,这个Key就是这个已登录的用户,因此PC端浏览器被授权访问主页。

要实现自主扫码登陆,必须得有安卓虚拟机

  1. 自动化测试框架的方案
    • appium就可以模拟,但是需要硬件支持二次虚拟化,云主机是不支持二次虚拟化的
    • pass
  2. 用河马云手机的方案:
    • 个人没有资金
    • pass
  3. 不用安卓虚拟机,靠requests发送请求的方案
    • 单靠一台没有跑安卓虚拟机的主机是无法完成扫码登陆的

其他方案

想请教各位大佬,在缺乏资金的情况下,且无法在云端搭建虚拟安卓机的情况下,还有没有其他方案能够实现不需要人工参与的扫码登陆?

tysontxli commented 5 years ago

其他部分全部都完成了.. 就剩下这个自动扫码登陆的问题.. 刚入门,才疏学浅,望各位赐教..

y0fx commented 5 years ago

大佬,还是最后一个方法靠谱,微信公众号,或者邮箱发送二维码,自行扫码

elleys commented 5 years ago

其实第一种不一定pass。。。有些自建的小主机还是支持二次虚拟化的。

另外第三种可以修改为,拿到登陆二维码,在该服务器的开放的网页中央显示,用手机扫描。云端自动完成。

tysontxli commented 5 years ago

其实第一种不一定pass。。。有些自建的小主机还是支持二次虚拟化的。

另外第三种可以修改为,拿到登陆二维码,在该服务器的开放的网页中央显示,用手机扫描。云端自动完成。

您说的第三种的修改方案,是基于已经在主机上部署好了安卓虚拟机的情况吗

tysontxli commented 5 years ago

其实第一种不一定pass。。。有些自建的小主机还是支持二次虚拟化的。

另外第三种可以修改为,拿到登陆二维码,在该服务器的开放的网页中央显示,用手机扫描。云端自动完成。

目前手头上有两台学生特价的服务器,没有多余资金了,自动扫码无非是多几个脚本的事,感觉好像没有必要做完全自动化了,影响也不太好

elleys commented 5 years ago

其实第一种不一定pass。。。有些自建的小主机还是支持二次虚拟化的。 另外第三种可以修改为,拿到登陆二维码,在该服务器的开放的网页中央显示,用手机扫描。云端自动完成。

您说的第三种的修改方案,是基于已经在主机上部署好了安卓虚拟机的情况吗

不是。。。其实和您说的第三种方案一样。。。只是不通过微信,微信毕竟不太安全。

tysontxli commented 5 years ago

其实第一种不一定pass。。。有些自建的小主机还是支持二次虚拟化的。 另外第三种可以修改为,拿到登陆二维码,在该服务器的开放的网页中央显示,用手机扫描。云端自动完成。

您说的第三种的修改方案,是基于已经在主机上部署好了安卓虚拟机的情况吗

不是。。。其实和您说的第三种方案一样。。。只是不通过微信,微信毕竟不太安全。

我明白了,这个方案是说把那个扫码登陆的页面部署到一个无法追踪的服务器上去,避免服务被ban掉对吗,好像还不仅仅是被ban的问题,被跨省简直不要太简单

elleys commented 5 years ago

其实第一种不一定pass。。。有些自建的小主机还是支持二次虚拟化的。 另外第三种可以修改为,拿到登陆二维码,在该服务器的开放的网页中央显示,用手机扫描。云端自动完成。

目前手头上有两台学生特价的服务器,没有多余资金了,自动扫码无非是多几个脚本的事,感觉好像没有必要做完全自动化了,影响也不太好

呃,还是很有必要的。。。毕竟您不可能每天记住要打开app,也不一定每天背着本~~但是学习app要求每天都要学习。。。真是形式主义害死人

elleys commented 5 years ago

其实第一种不一定pass。。。有些自建的小主机还是支持二次虚拟化的。 另外第三种可以修改为,拿到登陆二维码,在该服务器的开放的网页中央显示,用手机扫描。云端自动完成。

您说的第三种的修改方案,是基于已经在主机上部署好了安卓虚拟机的情况吗

不是。。。其实和您说的第三种方案一样。。。只是不通过微信,微信毕竟不太安全。

我明白了,这个方案是说把那个扫码登陆的页面部署到一个无法追踪的服务器上去,避免服务被ban掉对吗,好像还不仅仅是被ban的问题,被跨省简直不要太简单

嗯嗯,安全第一,GitHub还是比较安全的。。。毕竟好多boss看不懂英文、而且北方有时候不挂梯子还老断。。。然后服务器在国外。。。用英文写解释性文档,很不引人注目啦

tysontxli commented 5 years ago

其实第一种不一定pass。。。有些自建的小主机还是支持二次虚拟化的。 另外第三种可以修改为,拿到登陆二维码,在该服务器的开放的网页中央显示,用手机扫描。云端自动完成。

您说的第三种的修改方案,是基于已经在主机上部署好了安卓虚拟机的情况吗

不是。。。其实和您说的第三种方案一样。。。只是不通过微信,微信毕竟不太安全。

我明白了,这个方案是说把那个扫码登陆的页面部署到一个无法追踪的服务器上去,避免服务被ban掉对吗,好像还不仅仅是被ban的问题,被跨省简直不要太简单

嗯嗯,安全第一,GitHub还是比较安全的。。。毕竟好多boss看不懂英文、而且北方有时候不挂梯子还老断。。。然后服务器在国外。。。用英文写解释性文档,很不引人注目啦

然后提醒就用国外的邮箱服务器,谢谢了 睡了睡了

mtnobody commented 5 years ago

我倒是觉得可以开发一个版本,让用户自己本地部署,如果用户自己有主机就可以使用安卓模拟器自动化操作。

mtnobody commented 5 years ago

另外kvm架构的vps应该是可以支持二次虚拟化的

elleys commented 5 years ago

评论需要6字以上才能算积分,同时评论完可以立马删除,不影响积分。

分享的话,短信只写了动作代码,不需要反馈,比较适合积分。

收藏之后可以立马取消,不影响积分。

larblue commented 5 years ago

我的建议是,pc端识别登录二维码,这是一个含二维码和appid的登录链接,将链接通过钉钉机器人(有开发包)发送给用户手机端,用户手机端点击登录,即可授权网页登录。

SeraphUnion commented 5 years ago

我的建议是,pc端识别登录二维码,这是一个含二维码和appid的登录链接,将链接通过钉钉机器人(有开发包)发送给用户手机端,用户手机端点击登录,即可授权网页登录。

这个方法我已经试过。部分能实现,卡在回传网页上,详见:https://github.com/lbird18/QIANGGUO/issues/17

tonyupup commented 2 years ago

am start -a android.intent.action.VIEW -n cn.xuexi.android/com.alibaba.lightapp.runtime.activity.CommonWebViewActivity -d "https://login.xuexi.cn/login/qrcommit?showmenu=false&code=qr:DC6D3C5E-7FB4-4F6E-BD9A-BF885275D7C0&appId=dingoankubyrfkttorhpou"

tysontxli commented 2 years ago

您好,泰萱已收到您的邮件,将会尽快回复~