星空5G 导航

微信扫描二维码登录网页是什么原理,前后两个事件是如何联系的-

2024-07-15编辑:本站
微信扫描二维码登录网页是什么原理,前后两个事件是如何联系的~

  在电脑上使用微信时,你可能已经发现微信不提供传统的账号密码登陆,取而代之的是通过扫描二维码进行登陆。今天就要研究下次登陆方式微信时如何实现的?
  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系统的电视盒等。

浏览器获得一个临时 id,通过长连接等待客户端扫描带有此 id 的二维码后,从长连接中获得客户端上报给 server 的帐号信息进行展示,并在客户端点击确认后,获得服务器授信的令牌,进行随后的信息交互过程。 在超时、网络断开、其他设备上登录后,此前获得的令牌或丢失、或失效,有效完成了安全防护。

电脑请求网页后,微信服务器生成一个唯一的ID(这里是UUID)给客户端网页,客户端定时发起向微信服务器的连接(这里类似于轮询),微信服务器保持这个连接(这里类似于长连接),保持一段时间(大概27秒)返回一个逗还没人扫码地的标识,于是客户端再开连接手机微信扫码并解码,解码出来是一个URL也好,是一段文本也好,总之这段东西匹配了手机微信登陆网页版的要求,于是手机微信带着解码出来的信息去请求微信服务器。这里就已经达到了特定微信账号和某个特定网页相关联的目的
电脑这里微信服务器马上在长连接中返回逗有人扫码了地的表示并结束连接,网页提示扫描成功,然后打开长连接等待确认登陆的标识;手机这里么则根据二维码的信息打开对应网页确认登陆
后面其实和前面一样了,手机微信确认登陆的其实就是请求服务器说这个可以登录了,然后服务器给网页的长连接中返回可以登录的标识并结束长连接,然后跳转到消息网页

  • 电脑如何扫描二维码登录微信网页版
  • 答:具体操作如下:1、双击打开电脑中安装的微信电脑版客户端。2、使用手机微信客户端,把第一个微信账号登录上。3、然后在电脑浏览器中输入微信网页版,进行搜索。4、如下图所示,点击进入微信网页版官网。5、此时页面显示登录二维码,使用第二个微信号在手机顶端进行扫描即可。

  • 电脑如何扫描二维码登录微信网页版
  • 答:并且同步手机微信的消息。另外,如果需要退出电脑上的微信网页版,只需要在手机微信上点击“退出网页版微信”即可。同时,为了保证账号安全,建议不要在公共场合或者不信任的设备上使用此功能。总之,通过以上步骤,就可以轻松实现电脑扫描二维码登录微信网页版,方便快捷地管理自己的微信账号。

  • 微信网页版怎么登如何通过手机中的微信二维码扫描登录
  • 答:电脑浏览器登录http://wx.qq.com,在通过手机登录微信,轻触“发现”->扫描二维码->扫描电脑浏览器的二维码-》手机点击登录,即可登录使用微信网页版。1、打开电脑网页微信 2、打开手机微信 3、发现 4、扫一扫 扫描电脑屏幕二维码 5、手机微信确认登录。

  • 微信扫描二维码登录网页是什么原理,前后两个事件是如何联系的_百度知 ...
  • 答:二维码的信息就是一个网址,微信扫码后,微信的内置浏览器就会自动访问该网址。如果微信认为该网址有风险,还会先出现风险提示,让你手动确认是否访问该网址。

  • 微信如何扫描二维码登陆
  • 答:微信扫描二维码登录的具体操作方法如下:1.首先,在桌面上找到浏览器图标,双击打开。2.进入网页后在搜索栏中输入“微信网页版”后,点击“百度一下”。3.在出来的选项中,选择带有“官网”的“微信网页版”,鼠标单击进入。4.此时网页页面会出现一个二维码图案,这时需要使用手机进行扫描。5.扫描完成后...

  • 如何使用微信扫描二维码登录网页版微信
  • 答:http://wx.qq.com 打开这个网页,用手机微信“发现“>"扫一扫",然后确定登录就ok了 求采纳!

  • 微信网页登录 显示请使用微信扫描二维码以登录 怎么弄啊
  • 答:在电脑上登上wx.qq.com之后用手机扫一下屏幕上的二维码即可登录微信网页版。具体可看图。1.在百度上搜wx.qq.com 2.点击“微信网页版”,会出现二维码 3.用手机微信扫一扫屏幕上的二维码即可。扫一扫二维码即可登录微信的网页版,就可以实现在电脑上聊微信了。

  • 微信如何扫二维码登录?
  • 答:拿手机型号「OPPO-Reno5-Pro」和手机「微信版本8.0.33」来说,对于这个的话,只需用手机微信扫一扫电脑端微信的二维码登录码,就可以登录了。1.打开电脑端微信的扫码登录二维码。2.打开手机微信,选择扫一扫,扫一下电脑端微信中的扫码登录二维码。3.扫码成功后,手机微信会弹出『登录Windows微信』的提示...

  • 如何使用微信扫描二维码登录网页版微信
  • 答:网页版微信是可以在电脑上用的,相对于手机来说,比较方便,不用拿着手机也能回复微信,但是功能可能没有那么多,回复微信好友是不影响的。那么如何使用微信扫描二维码登录网页版微信?浏览器搜索“微信网页版”,然后点击进入;进入之后,会出现一个二维码,然后拿出手机,点击右上角的“+”,然后点击...

  • 微信网页版怎么登陆?微信网页版二维码扫描登录方法
  • 答:首先,在百度上搜索【微信网页版】,然后点击第一个网站,后面带官方标识的图标。进入微信网页版网站后,我们会看到这个页面中间只有一张二维码图片。然后用手机登陆微信,在【发现】这里,点击【扫一扫】。用微信的扫一扫,对准电脑微信网页版网页中心的二维码扫描。扫描完成后,点击【我确定登录微信网页版】...

    相关内容

    首页 新知 身健
    返回顶部

    © 星空5G w.xkyn.com