Closed Catofes closed 9 years ago
支持手机号登录
报错log:(把密码用×代替了),同时在报错的地方上面加了一句 pirnt data 我去新建一个帐号试试看
请输入登录信息, e.g: john@163.com 123456
18600200××× ×××
[{u'account': {u'userName': u'0_m18600200×××@163.com', u'status': -10, u'anonimousUser': False, u'whitelistAuthority': 0, u'baoyueVersion': 0, u'ban': 0, u'type': 0, u'id': 48727681, u'donateVersion': 0}, u'code': 200, u'bindings': [{u'expiresIn': 2147483647, u'tokenJsonStr': u'{"email":"m18600200×××@163.com"}', u'url': u'', u'type': 0, u'userId': 48727681, u'refreshTime': 0, u'expired': False, u'id': 24920300}], u'loginType': 0}, ['18600200×××', '×××']]
Traceback (most recent call last):
File "/usr/bin/musicbox", line 9, in
找到问题的来源了。不过我觉得是网易sb了。
网易似乎采取了一个奇怪的机制处理帐号系统。(大部分为推测)
当你新使用一个手机号注册账户之后,会优先生成一个用户名是手机号的网易云音乐帐号,同时生成了一个 m+手机号@163.com 的网易通行证帐号。
问题时这两个帐号之间是独立的。
即你可以以手机登陆,也可以用通行证登陆,同时这两个帐号对应着不同的网易云音乐帐号。两个帐号的密码都是独立的(我就说我登陆的时候很奇怪呢,为啥和网页版的密码不一样,因为我改过手机号的密码)
猜测如果先注册网易云音乐再绑定手机就没问题了,这样只有一个帐号同时关联了手机这个登陆名。
所以说 http://music.163.com/api/login
登陆只是针对鱼网易通行证,输入帐号是手机号的话登陆的是m+手机号@163.com 的账户而不是手机账户。
我修改 http://music.163.com/api/login
-> http://music.163.com/api/login/cellphone
同时把 data中的username改为phone就可以正常使用了。 因而建议对于登陆还是做一优化区分一下手机登陆和通行证登陆
btw 测试表明163貌似支持https登陆,改成https如何?
我的账号最先是一个163邮箱网易通行证账号,而后绑定的手机,这样登录,两种方法都可以登录,并且数据是联通的。而且当你绑定手机手机的同时还会生成一个手机号@邮箱.com的账号,这个也是可以使用的。所以,个人认为网易的账号机制是:手机号=邮箱=手机邮箱,这三个号应该在网易后台对应的是同一个UUID 才对,至于http://music.163.com/api/login/cellphone,还在测试。 有改成 https 的打算,不过感觉没必要,毕竟感觉网易本身就不靠谱。
对~ 这是绑定手机的结果,三个帐号相互关联起来了。。不过貌似直接用手机注册就呵呵了。。。谁晓得呢。
cellphone回来我发个pull request
用正则搞了个自动判定。。。。
在登陆的时候会在这个地方报错 https://github.com/darknessomi/musicbox/blob/master/src/menu.py#L387 错误是没有profile字段。检查返回的data里面的确没有这个字段
是不是因为帐号是手机号的原因?