Open robinhsu121 opened 1 year ago
就是登录不上去的,我测试了无数次了,换了几个人的方法,我怀疑这个操作被和谐了吧 你在新加坡的话是外网,根本连接不上
你用阿里云的海外版 白嫖一个国内VPS试试看
scription': '登录验证失败', 'securityStatus': 0, '_sign': '0psXfr43eNI0IX6q9Suk3qWbRqU=', 'sid': 'xiaomiio', 'result': 'error', 'captchaUrl': None, 'callback': 'https://sts.api.io.mi.com/sts', 'location': '', 'pwd': 0, 'child': 0, 'desc': '登录验证失败'} Traceback (most recent call last): File "/home/ubuntu/.local/lib/python3.10/site-packages/miservice/miaccount.py", line 69, in login raise Exception(resp) Exception: {'qs': '%3Fsid%3Dxiaomiio%26_json%3Dtrue', 'code': 70016, 'description': '登录验证失败', 'securityStatus': 0, '_sign': '0psXfr43eNI0IX6q9Suk3qWbRqU=', 'sid': 'xiaomiio', 'result': 'error', 'captchaUrl': None, 'callback': 'https://sts.api.io.mi.com/sts', 'location': '', 'pwd': 0, 'child': 0, 'desc': '登录验证失败'} Error https://api.io.mi.com/app/home/device_list: Login failed ubuntu@VM-4-7-ubuntu:~/MiService$
永远都是这样上不去 我不搞了 烦死了 累了
把登录操作返回结果打印出来会有一个location, 复制这个location的地址到浏览器登录一下(可能会让你确认手机号是否过变动,点击确认),然后再执行就可以了。
和这个没关系的吧 别人说要加一个python的符号,以及要在WLS上实现,所有云服务器都会失败的,别管国内国外
@jjiikkkk 我的理解是服务端有风控,由于某种原因需要二次认证导致了这个问题(比如新的IP,新的设备第一次登录)。我也是遇到同样的问题,然后把结果打印出来后找到登录地址手动登录一下,再执行就可以了。部分人可能是这个原因,可以试试。
不是部分人,是大部分人都过不去验证,你说的结果打印 到登录地址手动登陆,怎么没有登陆呢,都登陆的 都不行的
@jjiikkkk 我的理解是服务端有风控,由于某种原因需要二次认证导致了这个问题(比如新的IP,新的设备第一次登录)。我也是遇到同样的问题,然后把结果打印出来后找到登录地址手动登录一下,再执行就可以了。部分人可能是这个原因,可以试试。
怎么把结果打印出来?求方法,感谢
@jjiikkkk 我的理解是服务端有风控,由于某种原因需要二次认证导致了这个问题(比如新的IP,新的设备第一次登录)。我也是遇到同样的问题,然后把结果打印出来后找到登录地址手动登录一下,再执行就可以了。部分人可能是这个原因,可以试试。
怎么把结果打印出来?求方法,感谢
在miaccount.py这个文件,找到
resp = await self._serviceLogin(f'serviceLogin?sid={sid}&_json=true')
把resp打印出来就行了
把登录操作返回结果打印出来会有一个location, 复制这个location的地址到浏览器登录一下(可能会让你确认手机号是否过变动,点击确认),然后再执行就可以了。 感谢大佬 这样确实解决了
@jjiikkkk 我的理解是服务端有风控,由于某种原因需要二次认证导致了这个问题(比如新的IP,新的设备第一次登录)。我也是遇到同样的问题,然后把结果打印出来后找到登录地址手动登录一下,再执行就可以了。部分人可能是这个原因,可以试试。
怎么把结果打印出来?求方法,感谢
在miaccount.py这个文件,找到
resp = await self._serviceLogin(f'serviceLogin?sid={sid}&_json=true')
把resp打印出来就行了
感谢提示,解决了。我把location里面的地址拿到浏览器上,登录,验证之后,服务器还是登录不上。但是根据你的提示,我换了另外一种方法,在服务器上安装x-ui,然后全局代理到本地,在本地登录一次,通过验证,即可,安装命令,bash <(curl -Ls https://raw.githubusercontent.com/vaxilu/x-ui/master/install.sh) 具体参考 https://github.com/vaxilu/x-ui
@jjiikkkk 我的理解是服务端有风控,由于某种原因需要二次认证导致了这个问题(比如新的IP,新的设备第一次登录)。我也是遇到同样的问题,然后把结果打印出来后找到登录地址手动登录一下,再执行就可以了。部分人可能是这个原因,可以试试。
怎么把结果打印出来?求方法,感谢
在miaccount.py这个文件,找到
resp = await self._serviceLogin(f'serviceLogin?sid={sid}&_json=true')
把resp打印出来就行了感谢提示,解决了。我把location里面的地址拿到浏览器上,登录,验证之后,服务器还是登录不上。但是根据你的提示,我换了另外一种方法,在服务器上安装x-ui,然后全局代理到本地,在本地登录一次,通过验证,即可,安装命令,bash <(curl -Ls https://raw.githubusercontent.com/vaxilu/x-ui/master/install.sh) 具体参考 https://github.com/vaxilu/x-ui
方便加个Q:3459220392,指导一下!感谢
设置服务器上的代理
在您的服务器上安装 tinyproxy。这通常可以通过您的包管理器来完成。 例如,在 Ubuntu 上使用命令:
sudo apt-get install tinyproxy
打开 tinyproxy 的配置文件,通常位于 /etc/tinyproxy/tinyproxy.conf。
修改配置: 找到所有包含 Allow 关键字的行。这些行定义了哪些 IP 地址被允许使用代理。 默认情况下,tinyproxy 可能仅允许本地网络的流量。 将这些行注释掉(在行首添加 #),这样 tinyproxy 将接受来自任何 IP 地址的连接。 注意: 这可能会带来安全风险,因为任何人都可以使用您的代理服务器。确保您了解这一点并采取适当的安全措施。
sudo service tinyproxy start
或
sudo systemctl start tinyproxy
例如,在 Chrome 中,可以通过 设置 -> 高级 -> 系统 -> 打开计算机的代理设置 来进行配置。
测试代理
使用已经设置了代理的浏览器。
进入小米账户登录页面。
输入您的用户名和密码进行登录。
我发现了一种可能性。 家里的网络,电信没有分配外网IP给你。现在电信默认给你分配了一个内网地址,没有公网地址。 我后来打电话给电信要求给一个外网IP,立刻就可以登录了。
有解决小米账号在电脑端相同的网络环境登录下就没再触发
我是用的香港节点的阿里云成功了,用secretCRT给服务器打了隧道,然后用Proxifier做了代理,登陆了几次后就可以了
@jjiikkkk 我的理解是服务端有风控,由于某种原因需要二次认证导致了这个问题(比如新的IP,新的设备第一次登录)。我也是遇到同样的问题,然后把结果打印出来后找到登录地址手动登录一下,再执行就可以了。部分人可能是这个原因,可以试试。
怎么把结果打印出来?求方法,感谢
在miaccount.py这个文件,找到
resp = await self._serviceLogin(f'serviceLogin?sid={sid}&_json=true')
把resp打印出来就行了
按这个方法成功了,感谢
有解决小米账号在电脑端相同的网络环境登录下就没再触发
这个解决了我的问题
把登录操作返回结果打印出来会有一个location, 复制这个location的地址到浏览器登录一下(可能会让你确认手机号是否过变动,点击确认),然后再执行就可以了。
你的回答非常有帮助👍。 我是在国内的aliyun上部署了本地能正常的运行的代码,但是复制出这个location在我本地的浏览器打开登录,服务器依然没有登录,但是能推断出就是地理位置变化引起的风控问题,所以如果能在服务器正常登录下小米账号应该就能解决这个问题,因为ECS服务器并未部署桌面,所以在ECS上部署了一个firefox的docker,通过远程浏览器的方式,在服务器上登录了下mi.com后,完美解决!