中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信二維碼登錄原理是什么

發布時間:2021-11-17 14:26:17 來源:億速云 閱讀:129 作者:柒染 欄目:web開發

這期內容當中小編將會給大家帶來有關微信二維碼登錄原理是什么,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

在電腦上使用微信時,你可能已經發現微信不提供傳統的賬號密碼登陸,取而代之的是通過掃描二維碼進行登陸。今天就要研究下次登陸方式微信時如何實現的?

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(/<script>(.*)<\/script>/);                     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系統的電視盒等。

上述就是小編為大家分享的微信二維碼登錄原理是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平江县| 普兰县| 宜宾县| 昌平区| 黑水县| 青浦区| 遂溪县| 志丹县| 徐州市| 商城县| 普定县| 成安县| 松江区| 五常市| 余姚市| 桐庐县| 池州市| 夏津县| 三门县| 黑山县| 运城市| 榕江县| 衢州市| 怀安县| 盐边县| 铜鼓县| 景东| 新野县| 上栗县| 遵化市| 延安市| 乳山市| 恭城| 德兴市| 清远市| 和顺县| 博爱县| 敖汉旗| 边坝县| 宣化县| 天镇县|