1. 微信扫描二维码登录网页是什么原理
在电脑上使用微信时,你可能已经发现微信不提供传统的账号密码登陆,取而代之的是通过扫描二维码进行登陆。今天就要研究下次登陆方式微信时如何实现的?
1、每次用户打开PC端登陆请求,系统返回一个唯一的uid,并将uid的信息绘制成二维码返回给用户。这里的uid一定是唯一的,否则就会造成你登陆了其他用户的账号或者其他用户登陆你的账号。
2、当用户使用登陆后的微信扫描该二维码的时候,会将这个uid和手机上的微信账号及密码产生的token进行绑定,并上传到服务器。
3、WEB通过JS不断的向后端发起请求,查询有没有关于uid的登陆记录(uid和token是否存在于服务器上)。实现代码可以从微信页面获取:
function _poll(_asUUID) {
var _self = arguments.callee,
_nTime = 0;
_sCurUUId = _asUUID;
_logInPage("_poll Request Start, time: " + new Date().getTime());
_nTime = new Date().getTime();
$.ajax({
type: "GET",
url: "https://login." + _sBaseHost + "/cgi-bin/mmwebwx-bin/login?uuid=" + _asUUID + "&tip=" + show_tip,
dataType: "script",
cache: false,
timeout: _nAjaxTimeout,
success: function(data, textStatus, jqXHR) {
_logInPage("_poll Request Success, code: " + window.code + ", time: " + (new Date().getTime() - _nTime) + "ms");
switch (_aoWin.code) {
case 200:
_sSecondRequestTime = new Date().getTime() - _sSecondRequestTime;
_logInPage("Second Request Success, time: " + _sSecondRequestTime + "ms");
clearTimeout(_oResetTimeout);
$.get(_aoWin.redirect_uri + "&fun=new", function(msg) {
_logInPage("new func reponse, reponseMsg: " + msg);
_reportNow("new func reponse, reponseMsg: " + msg);
var code = msg.match(/(.*)/);
if(code){
eval(code[1]);
}else{
$("#container").show();
$("#login_container").hide();
}
});
_reportNow("/cgi-bin/mmwebwx-bin/login, Second Request Success, uuid: " + _asUUID + ", time: " + _sSecondRequestTime + "ms");
break;
case 201:
clearTimeout(_oResetTimeout);
show_tip = 0;
$('.errorMsg').hide();
$('.normlDesc').hide();
$('.successMsg').show();
_logInPage("First Request Success");
_reportNow("/cgi-bin/mmwebwx-bin/login, First Request Success, uuid: " + _asUUID);
// setTimeout(function(){
_logInPage("Second Request Start");
_reportNow("/cgi-bin/mmwebwx-bin/login, Second Request Start, uuid: " + _asUUID);
_sSecondRequestTime = new Date().getTime();
_nAjaxTimeout = 5 * 1000;
_self(_asUUID);
// }, 500);
break;
case 408:
setTimeout(function(){
_self(_asUUID);
}, 500);
break;
case 400:
case 500:
_reset();
_afterLoadWebMMDo(function(){
_aoWin.Log.d("500, Login Poll Svr Exception");
});
break;
}
},
error: function(jqXHR, textStatus, errorThrown) {
if (textStatus == 'timeout') {
setTimeout(function(){
_self(_asUUID);
}, 500);
} else {
setTimeout(function(){
_self(_asUUID);
}, 5000);
_logInPage("_poll Request Error:" + textStatus);
_afterLoadWebMMDo(function(){
_aoWin.Log.e("Login Poll Error:" + textStatus);
});
}
}
});
}
网页客户端每500毫秒就向服务器发起ssl请求,请求当前二维码的登陆信息,如果返回结果201,则说明已经获取扫描二维码终端相同的账号登陆授权,当返回其他结果时,将在500毫秒之后重新发起请求。
类似微信登陆场景应用场景还是很多,比如通过二维码进行设备间的授权。比如使用手机遥控 装有android系统的电视盒等。
2. 微信扫二维码怎么登陆
以iPhone 8 Plus手机,手机微信(7.0.11),是脑微信(2.8.0.121)为例,可参考以下步骤扫二维码在电脑上登陆:
1、打开电脑上的【微信】点击【切换账户】。
2、就会跳转到【二维码】界面。
3、这时打开手机上边的【微信】。
4、然后点击右上角的【+】。
5、跳转后点击【扫一扫】。
6、然后对着电脑上边的【二维码】扫。
7、在手机上点击【登录】即可。
3. 微信网页登录 显示请使用微信扫描二维码以登录 怎么弄啊
在电脑上登上wx.qq.com之后用手机扫一下屏幕上的二维码即可登录微信网页版。具体可看图。
1.在百度上搜wx.qq.com
2.点击“微信网页版”,会出现二维码
3.用手机微信扫一扫屏幕上的二维码即可。
扫一扫二维码即可登录微信的网页版,就可以实现在电脑上聊微信了。
4. 微信二维码怎么让人一扫描就可以登录
微信打开二维码之后,将二维码保存到手机,然后发给别人扫描就可以了,如果是面对面的添加,你只要打开二维码,对方在【发现】打开扫一扫,扫描你的二维码就可以了。
5. 如何在pc端实现微信二维码扫码登录功能
点此进入微信网页版官网,打开网页之后打开微信的“扫一扫”功能扫描网页上的二维码,之后进行确认就可以在电脑上登陆微信了。PC端微信二维码扫码登录实现思路
1. 首先要保证每次弹出的二维码是唯一的。可以在程序内部,通过session_id 与与弹出的二维码做一定关联。(即微信oauth授权网址 callback 中要带有当前PC端用户session_id,且callback URL应与 PC网站同域)
2. 其次当展现二维码的同时,要运行一个PC端网页异步轮询xmlhttprequest (ajax ) ,定时轮询后台判断手机微信端是否有成功登录标记。
3. 当用户在微信扫码,并授权登录后,微信携带openid 信息跳转到 callback URL,此时callback URL 参数中带有PC端session_id ,根据session_id ,关联设置用户登录状态。
4. PC端异步轮询请求获得已登录消息,刷新\跳转PC端网页。
6. 手机微信登录页面怎么扫二维码登录微信
打开扫一扫
1.
如果您使用您的手机号登录微信,或者您的微信帐号绑定了手机,您可以使用手机号重设您的密码。输入微信帐号,点击忘记密码,出现菜单。
2.
不扫二维码怎样登陆微信电脑版,下载完成后打开,输入账户和密码,第一次需要手机验证短信,之后完全和手机一样,非常方便。
3.
下载之后,我们首先登录网页版微信,打开之后会提示你用手机微信扫一扫,你就打开微信进入扫一扫功能,对着电脑的二维码扫一扫就能登录了。
7. 微信扫二维码怎么登陆
以iPhone 8 Plus手机,手机微信(7.0.11),是脑微信(2.8.0.121)为例,可参考以下步骤扫二维码在电脑上登陆:
1、打开电脑上的【微信】点击【切换账户】。
2、就会跳转到【二维码】界面。
3、这时打开手机上边的【微信】。
4、然后点击右上角的【+】。
5、跳转后点击【扫一扫】。
6、然后对着电脑上边的【二维码】扫。
7、在手机上点击【登录】即可。
8. 微信扫二维码怎么登陆
首先,电脑上打开微信快捷方式,然后会出现登陆框,
用手机微信扫(扫一扫)二维码
会出现登陆弹窗,确认登陆,然后就可以了!