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

账号登录上报错,无论用手机号,用户id还是邮箱都不行,怎么解决 #32

Open
robinhsu121 opened this issue Apr 5, 2023 · 19 comments

Comments

@robinhsu121
Copy link

image

@jjiikkkk
Copy link

jjiikkkk commented Apr 9, 2023

就是登录不上去的,我测试了无数次了,换了几个人的方法,我怀疑这个操作被和谐了吧
你在新加坡的话是外网,根本连接不上

@jjiikkkk
Copy link

jjiikkkk commented Apr 9, 2023

你用阿里云的海外版 白嫖一个国内VPS试试看

@jjiikkkk
Copy link

jjiikkkk commented Apr 9, 2023

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$

永远都是这样上不去 我不搞了 烦死了 累了

@nanbingxyz
Copy link

把登录操作返回结果打印出来会有一个location, 复制这个location的地址到浏览器登录一下(可能会让你确认手机号是否过变动,点击确认),然后再执行就可以了。

@jjiikkkk
Copy link

和这个没关系的吧
别人说要加一个python的符号,以及要在WLS上实现,所有云服务器都会失败的,别管国内国外

@nanbingxyz
Copy link

nanbingxyz commented Apr 23, 2023

@jjiikkkk 我的理解是服务端有风控,由于某种原因需要二次认证导致了这个问题(比如新的IP,新的设备第一次登录)。我也是遇到同样的问题,然后把结果打印出来后找到登录地址手动登录一下,再执行就可以了。部分人可能是这个原因,可以试试。

@jjiikkkk
Copy link

不是部分人,是大部分人都过不去验证,你说的结果打印 到登录地址手动登陆,怎么没有登陆呢,都登陆的 都不行的

@gdnorcy
Copy link

gdnorcy commented May 23, 2023

@jjiikkkk 我的理解是服务端有风控,由于某种原因需要二次认证导致了这个问题(比如新的IP,新的设备第一次登录)。我也是遇到同样的问题,然后把结果打印出来后找到登录地址手动登录一下,再执行就可以了。部分人可能是这个原因,可以试试。

怎么把结果打印出来?求方法,感谢

@nanbingxyz
Copy link

@jjiikkkk 我的理解是服务端有风控,由于某种原因需要二次认证导致了这个问题(比如新的IP,新的设备第一次登录)。我也是遇到同样的问题,然后把结果打印出来后找到登录地址手动登录一下,再执行就可以了。部分人可能是这个原因,可以试试。

怎么把结果打印出来?求方法,感谢

在miaccount.py这个文件,找到
resp = await self._serviceLogin(f'serviceLogin?sid={sid}&_json=true')
把resp打印出来就行了

@chaoqunxie
Copy link

把登录操作返回结果打印出来会有一个location, 复制这个location的地址到浏览器登录一下(可能会让你确认手机号是否过变动,点击确认),然后再执行就可以了。
感谢大佬 这样确实解决了

@bobo-junjun
Copy link

@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

@surfboy2000
Copy link

@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,指导一下!感谢

@luxuncang
Copy link

luxuncang commented Nov 12, 2023

设置服务器上的代理

  1. 安装 tinyproxy

在您的服务器上安装 tinyproxy。这通常可以通过您的包管理器来完成。
例如,在 Ubuntu 上使用命令:

sudo apt-get install tinyproxy
  1. 配置 tinyproxy
  • 打开 tinyproxy 的配置文件,通常位于 /etc/tinyproxy/tinyproxy.conf。

  • 修改配置:
    找到所有包含 Allow 关键字的行。这些行定义了哪些 IP 地址被允许使用代理。
    默认情况下,tinyproxy 可能仅允许本地网络的流量。
    将这些行注释掉(在行首添加 #),这样 tinyproxy 将接受来自任何 IP 地址的连接。
    注意: 这可能会带来安全风险,因为任何人都可以使用您的代理服务器。确保您了解这一点并采取适当的安全措施。

  1. 运行 tinyproxy
  • 启动 tinyproxy 服务。这通常可以通过以下命令之一来完成:
sudo service tinyproxy start

sudo systemctl start tinyproxy
  • 在本地计算机上设置代理
  1. 全局设置
  • 在网络设置中配置代理,输入您的服务器的 IP 地址和 tinyproxy 运行的端口(默认为 8888)。
  1. 浏览器设置
  • 在浏览器的网络或代理设置中进行配置。

例如,在 Chrome 中,可以通过 设置 -> 高级 -> 系统 -> 打开计算机的代理设置 来进行配置。

测试代理

  1. 打开浏览器

使用已经设置了代理的浏览器。

  1. 访问小米账户登录页面

进入小米账户登录页面。

  1. 登录您的账户

输入您的用户名和密码进行登录。

@maopucheng
Copy link

我发现了一种可能性。
家里的网络,电信没有分配外网IP给你。现在电信默认给你分配了一个内网地址,没有公网地址。
我后来打电话给电信要求给一个外网IP,立刻就可以登录了。

@muxueweiyu
Copy link

有解决小米账号在电脑端相同的网络环境登录下就没再触发
1
2

@xjblszyy
Copy link

xjblszyy commented Mar 6, 2024

我是用的香港节点的阿里云成功了,用secretCRT给服务器打了隧道,然后用Proxifier做了代理,登陆了几次后就可以了

@Chidoudou
Copy link

@jjiikkkk 我的理解是服务端有风控,由于某种原因需要二次认证导致了这个问题(比如新的IP,新的设备第一次登录)。我也是遇到同样的问题,然后把结果打印出来后找到登录地址手动登录一下,再执行就可以了。部分人可能是这个原因,可以试试。

怎么把结果打印出来?求方法,感谢

在miaccount.py这个文件,找到 resp = await self._serviceLogin(f'serviceLogin?sid={sid}&_json=true') 把resp打印出来就行了

按这个方法成功了,感谢

@BussanQ
Copy link

BussanQ commented Sep 19, 2024

有解决小米账号在电脑端相同的网络环境登录下就没再触发 1 2

这个解决了我的问题

@DroidaLee
Copy link

把登录操作返回结果打印出来会有一个location, 复制这个location的地址到浏览器登录一下(可能会让你确认手机号是否过变动,点击确认),然后再执行就可以了。

你的回答非常有帮助👍。
我是在国内的aliyun上部署了本地能正常的运行的代码,但是复制出这个location在我本地的浏览器打开登录,服务器依然没有登录,但是能推断出就是地理位置变化引起的风控问题,所以如果能在服务器正常登录下小米账号应该就能解决这个问题,因为ECS服务器并未部署桌面,所以在ECS上部署了一个firefox的docker,通过远程浏览器的方式,在服务器上登录了下mi.com后,完美解决!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests