Web微信登录流程
登录页所做的事
当访问网页微信的主页(https://wx2.qq.com/)时,会去访问https://login.wx2.qq.com/jslogin?appid=wx782c26e4c19acffb&redirect_uri=https%3A%2F%2Fwx2.qq.com%2Fcgi-bin%2Fmmwebwx-bin%2Fwebwxnewloginpage&fun=new&lang=zh_CN&_=1525764574790(这里最后的_对应的值是时间戳).去获取一个uuid(响应内容window.QRLogin.code = 200; window.QRLogin.uuid = "YYXyArPprg==";),然后将这个uuid的值拼接在https://login.weixin.qq.com/qrcode/后形成一个url作为二维码图片的src属性,此时页面已经渲染完毕.
然后页面使用长轮循的方式不断地连接https://login.wx2.qq.com/cgi-bin/mmwebwx-bin/login?loginicon=true&uuid=YYXyArPprg==&tip=0&r=-1051207798&_=1525766683725,uuid就是之前访问获得的uuid,后面的_还是时间戳,轮循会有三种不同的状态
- 一 未扫码状态,响应信息window.code=408;
- 二 扫码未确认,响应信息window.code=201;window.userAvatar = '头像链接';
- 三 登录成功,响应在下面
window.code=200;
window.redirect_uri="https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage?ticket=A7BtjrrDXHwjHEmiiYA4Eocw@qrticket_0&uuid=YYXyArPprg==&lang=zh_CN&scan=1525766697";
响应成功后会去访问redirect_ur+ "&fun=new&version=v2"获得凭证相关的信息:
https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage?ticket=A7BtjrrDXHwjHEmiiYA4Eocw@qrticket_0&uuid=YYXyArPprg==&lang=zh_CN&scan=1525766697&fun=new&version=v2&lang=zh_CN
响应
<error><ret>0</ret><message></message><skey>@crypt_1ceb99dd_c3d604ea7da8146bdec612b663539c08</skey><wxsid>oFjQY9AOGEgM5Yic</wxsid><wxuin>2181238037</wxuin><pass_ticket>Y%2BV6W%2F1EA6VuCORrW57oY%2Fpn%2FmTwQJQttR%2B%2FulzyTJq3EmFCagUGNkaKBnKiBuRm</pass_ticket><isgrayscale>1</isgrayscale></error>
获得凭证信息后再根据这些凭证信息去获得用户信息
POST请求https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxinit?r=-1053293819&lang=zh_CN&pass_ticket=Y%252BV6W%252F1EA6VuCORrW57oY%252Fpn%252FmTwQJQttR%252B%252FulzyTJq3EmFCagUGNkaKBnKiBuRm
携带信息
{BaseRequest:{DeviceID:"e364462169579229",Sid:"oFjQY9AOGEgM5Yic",Skey:"@crypt_1ceb99dd_c3d604ea7da8146bdec612b663539c08",Uin:"2181238037"}

浙公网安备 33010602011771号