您当前的位置: 首页 > 知识百科 > 小程序扫码登陆的原理及操作步骤

小程序扫码登陆的原理及操作步骤

时间:2023-07-01 14:05 阅读数:112 人阅读 分类:知识百科

  小程序扫码登陆可以以最快的速度进入小程序,所以很多小程序都开放了自己的二维码方便用户扫码登陆。但是小程序扫码登陆的原理是什么呢?具体要怎么操作呢?一起来了解下吧。

  小程序扫码登陆实现的大概原理就是——微信手机端口从二维码得到相应的信息,将这个信息发送到网页上的小程序服务器,服务器经过验证之后响应相关操作。

  1.只要大家打开网页版的微信小程序,就会生成一个含有小程序uid的小程序二维码,而且这个二维码刷新后会发生改变,以此来保证小程序只可以绑定一个账号和密码,确定小程序登录用户的唯一*。可以通过手机上的UC浏览器提供的扫码功能查看二维码里面的信息,但并不会自动打开该地址。我刷新三次,扫描结果如下,其中最后面那串数字就是uid:

  1) login.weixin.qq/l/48e24d66bdbc4f

  2) login.weixin.qq/l/0787fb4fa7ad4c

  3) login.weixin.qq/l/92781a4a7f1c47

  通过查看网页源码,这个小程序页面在加载完毕时,已经把很多登录后才需要的相关资源都预先加载进来了,所以登录用户得到确认后展示用户信息的速度很快。

  2.除了返回唯一的uid,实际上打开这个页面的时候,浏览器跟服务器还创建了一个长连接,请求uid的扫描记录。如果没有,在特定时长后(目前是27秒左右)会接到状态码408(请求超时),表示应该继续下一次请求;如果接到状态码201(服务器创建新资源成功),表示客户端扫描了该二维码。

  请求超时:返回408 

  扫码成功:返回201

  长轮询代码结构:

  Js代码

  function _poll(_asUUID) {

  // ....

  $.ajax({

  type: "GET",

  url: "login." + _sBaseHost + "/cgi-bin/mmwebwx-bin/login?uuid=" + _asUUID + "&tip=" + show_tip,

  dataType: "script",

  cache: false,

  timeout: _nAjaxTimeout,

  success: function(data, textStatus, jqXHR) {

  switch (_aoWin.code) {

  case 200:

  // ....

  break;

  case 201:

  // ....

  break;

  case 408:

  // ....

  break;

  case 400:

  case 500:

  // ....

  break;

  }

  },

  error: function(jqXHR, textStatus, errorThrown) {

  // ....

  }

  });

  }

  3.当用户使用登录后的微信扫描二维码的时候,会将uid和手机微信产生的token进行绑定,并上传到服务器。这个时候,浏览器通过长轮询查询到uid扫描记录,立即得到201响应码,然后通知服务器,客户端由此也进入一个新的页面(就是那个要你点确认的按钮)。在客户端点击确认后,获得服务器授信的令牌,进行随后的信息交互过程。

  结语

  总的来说,微信扫码登录核心过程应该是这样的:浏览器获得一个唯一的、临时的uid,通过长连接等待客户端扫描带有此uid的二维码后,从长连接中获得客户端上报给服务器的帐号信息进行展示。并在客户端点击确认后,获得服务器授信的令牌,进行随后的信息交互过程。 在超时、网络断开、其他设备上登录后,此前获得的令牌或丢失、或失效,对授权过程形成有效的安全防护。

  以上就是关于小程序扫码登陆的全部资料了,相信大家看完之后都对小程序扫码登陆有了更多的了解,如果大家还有不懂的地方,可以在微信小程序商店搜索相关资料。

  

  微信小程序扫码支付功能怎么申请?

  微信小程序扫码接口怎么开通?

  小程序扫码功能是什么?怎么使用扫码功能?