您的位置:首頁技術文章
文章詳情頁

javascript - 關于微信掃一掃的技術問題

瀏覽:121日期:2022-09-25 18:16:05

問題描述

現在通過了解知道微信二維碼里面包含一個uid,通過客戶端掃二維碼拿到這個UID,網頁端不斷的請求此Uid是否得到授權,得到授權之后才會登陸,我有點不明白的地方是,客戶端怎么才能讓網頁端知道已經得到授權和登陸的請求。發送到服務器之后網頁端是怎么拿到這個授權的,如果通過數據庫肯定很簡單,但是我覺得肯定不是通過數據庫拿到的。請問這個里面還有什么技術可以讓客戶端發送的指令讓網頁端拿到??!求不吝賜教

問題解答

回答1:

除了返回唯一的uid,實際上打開這個頁面的時候,瀏覽器跟服務器還創建了一個長連接,請求uid的掃描記錄。如果沒有,在特定時長后(目前是27秒左右)會接到狀態碼408(請求超時),表示應該繼續下一次請求;如果接到狀態碼201(服務器創建新資源成功),表示客戶端掃描了該二維碼。

請求超時:返回408

javascript - 關于微信掃一掃的技術問題

掃碼成功:返回201

javascript - 關于微信掃一掃的技術問題

查詢代碼

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響應碼,然后通知服務器,客戶端由此也進入一個新的頁面(就是那個要你點確認的按鈕)。在客戶端點擊確認后,獲得服務器授信的令牌,進行隨后的信息交互過程。

標簽: 微信
相關文章:
国产综合久久一区二区三区