第一次寫博客,心情無比的激動,不知道怎么樣寫,才能表達得通俗易懂......
前段時間接到一個需求,說要在我們的項目上面加一個掃碼登錄的功能,就像QQ、微信一樣,我馬上就上網查了一些資料,感覺和我們的系統不搭,后來經過幾位大神的指點終於實現了該功能。
1、首先用你的微信綁定要登錄的那個賬號
掃描二維碼跳轉到綁定賬號那個頁面,注意,只能使用微信掃描,因為要授權,這個時候需要傳兩個參數過去,一個是guid,還有一個是你要綁定的這個賬號的id,傳這兩個參數的意義在與,guid可以找到是用哪台電腦綁定,因為我們的系統,一個賬號可以在多台電腦上同時登錄。id是為了找到你要綁定的那個賬號,點擊確認,往數據庫插入一條數據,成功之后顯示綁定成功。
2、開始登錄
在登錄頁面里面加入一個定時器
$(function () { var interval; //點擊展示二維碼 $(".login-2wm").click(function () { $(".login_formdiv").toggle(); $(".login-2wm span").toggle(); $(".login_title p.login_title_p").toggle(); if (interval == undefined) { interval = setInterval(Qrcode, "3000"); } }); }); //監控 function Qrcode() { $.get('/WxWeb/QRCodeLogin/Check',//要驗證的鏈接 { guid: '<%=guid %>'//防止登錄出錯 }, function (res) { if (res.Code) { $.post('../tools/QrLogin.ashx',//進行驗證模擬用戶登錄 { mid: res.MId,//驗證成功后,傳回來的賬號id guid: res.Guid }, function (testData) { if (testData.agentLevel == -1000) { $.dialog.alert(testData.description); } else if (testData.agentLevel > 0) { window.location.href = "xxx.aspx"; } else { window.location.href = "xxx.aspx"; } }, "JSON" ); } }, "JSON"); }; </script>
定時器的意義在於,實時監控驗證那個頁面,驗證頁只需要授權拿到openid之后,到數據庫里面去匹配,匹配成功之后返回賬號的id,當我得到我需要的參數之后,我再post一個請求去模擬用戶登錄,這樣就登錄成功了,是不是很簡單,第一次寫,寫的不好,不喜勿噴哦!