suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript – Technische Probleme beim WeChat-Scan

Jetzt weiß ich, dass der WeChat-QR-Code eine UID enthält. Sie können diese UID erhalten, indem Sie den QR-Code auf dem Client scannen. Die Webseite fragt ständig nach, ob die UID autorisiert ist Ich verstehe etwas nicht. Ja, wie kann der Kunde der Webseite mitteilen, dass die Autorisierungs- und Anmeldeanfrage eingegangen ist? Wie erhält die Webseite diese Autorisierung, nachdem sie an den Server gesendet wurde? Wenn sie über die Datenbank abgerufen wird, muss dies sehr einfach sein, aber ich denke, sie wird definitiv nicht über die Datenbank abgerufen. Ich würde gerne fragen, ob es hier eine andere Technologie gibt, die es der Webseite ermöglichen kann, die vom Client gesendeten Anweisungen abzurufen! ! Bitte gebt mir einen Rat

PHPzPHPz2774 Tage vor839

Antworte allen(1)Ich werde antworten

  • phpcn_u1582

    phpcn_u15822017-05-17 10:07:28

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

    请求超时:返回408

    扫码成功:返回201

    查询代码

     function _poll(_asUUID) {
         $.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) {
             switch (_aoWin.code) {
               case 200:
                 // ....
                 break;
               case 201:
                 // ....
                 break;
               case 408:
                 // ....
                 break;
               case 400:
               case 500:
                 // ....
                 break;
             }
           },
           error: function(jqXHR, textStatus, errorThrown) {
             // ....
           }
         });
     }

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

    Antwort
    0
  • StornierenAntwort