對于微信電腦頁面二維碼掃描登陸有效果方法
發(fā)表時間:2023-07-26 來源:明輝站整理相關軟件相關文章人氣:
[摘要]軟件等級:更新時間:2017-12-29版本號:v6.6.0 騰訊微信2018正式版安卓立即下載 如何使用微信掃描二維碼登錄網頁版微信,相信還有很多網友朋友不知道,其實很簡單...
如何使用微信掃描二維碼登錄網頁版微信,相信還有很多網友朋友不知道,其實很簡單,看那個微信電腦端的掃描登錄看起來叼叼噠,找了一篇文章了解一下具體的實現(xiàn)思路和過程,看了牛人的分析后,發(fā)現(xiàn)實現(xiàn)起來也不是很難,這里我就簡單的實現(xiàn)了一下?赡芄δ芎土鲿扯葲]有微信做的好,具體是我對前端不是很了解。
- 好了,不多說,首先要有一個二維碼的生成軟件才行,這里找了一個叫QrenCode的軟件,好處是可以在命令行中進行生成。(下載地址: http://pkgs.org/download/qrencode 找自己合適的下載 應該還要一個依賴庫libqrencode)
- 1 #QrenCode 下面是centos6.4的安裝命令 2 wget http://dl.fedoraproject.org/pub/epel/6/i386/qrencode-3.4.2-1.el6.i686.rpm3 wget http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/i586/RPMS.classic/libqrencode-3.4.3-alt1.i586.rpm 4 rpm -ivh libqrencode-3.4.3-alt1.i586.rpm5 rpm -ivh qrencode-3.4.2-1.el6.i686.rpm
- 命令行生成二維碼的方法
- 生成二維碼格式 qrencode -o [filename.png] ‘[text/url/information to encode]‘ 參數(shù)-o 表示生成到指定文件-s num 表示生成的二維碼的大小,每個點使用num個像素代替-v num 表示生成的版本
- 創(chuàng)建一個login.c文件用于創(chuàng)建一個用于顯示二維碼的cgi (這里用的服務器是我博客中提到的web服務器,雖然還有bug,但是還是夠用的。其他的服務器應該也是可以的。用自己的服務器會不會被罵((逃 )
- 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 8 int rand_str(char *str,int num) 9 {10 int i,j;11 for(i=0;i
- 運行結果,基本每次都是可以隨機的。
- 這里還有一點要說的,就是隨機算法的問題(好像是什么十大算法之類的),我弄不了,使用的是庫函數(shù)。我這個程序的隨機種子是1秒一次,也就是1秒才會變換一次,還有一個問題就是這個srand函數(shù)的隨機種子數(shù)好像不多,應該是6W多吧,這個如果用戶一多就麻煩了。我這里想到的另一個辦法是根據(jù)那個毫秒數(shù)來弄(例如用加密算法來對這個毫秒進行加密得到一個字符串,再加個什么的都可以,例如用戶名什么的,最主要的是保證唯一,這個如果實際產品中實現(xiàn)應該不是很難)。
- 接下來要做的是根據(jù)這個url地址再生成一個cgi程序,用于手機APP的調用。我這里想到的辦法是每次刷新這個login頁面時,就復制一個cgi程序,給APP調用。APP的調用機制是根據(jù)這個用二維碼生成的url地址發(fā)送一個確認包。(確認包使用get方式可以,用post方式也可以,另外用一臺服務器也是可以的,這個要看用戶量等具體情況?傊褪沁@樣了。)
- 我這里為了演示的方便就采用get方式(原因嘛?我沒有APP這種客戶端,就簡單的在手機上對這個url后面加上個參數(shù)了。)
- 本次實驗用到的3個程序代碼 (代碼中的目錄問題是因為我的服務器設計有缺陷,導致有些目錄要使用相對于程序的絕對路徑,有的可以使用相對路徑,總之我試驗的時候有點坑,不過不影響代碼的可讀性)
- login.c
- 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 8 int rand_str(char *str,int num) 9 {10 int i,j;11 for(i=0;i
- callback.c
- 1 #include 2 #include 3 #include 4 5 int split(char **arr,char *str,const char*del) 6 { 7 char *s=NULL; 8 int i=0; 9 s=strtok(str,del);10 while(s!=NULL)11 {12 *arr++=s;13 s=strtok(NULL,del);14 i++;15 }16 return i;17 }18 19 void split_key(char *ch,char *key,char *value)20 {21 int len;22 int i;23 int j;24 len=strlen(ch);25 j=0;26 for(i=0;i
- welcome.c
- 1 #include 2 #include 3 #include 4 #include 5 6 int split(char **arr,char *str,const char*del) 7 { 8 char *s=NULL; 9 int i=0;10 s=strtok(str,del);11 while(s!=NULL)12 {13 *arr++=s;14 s=strtok(NULL,del);15 i++;16 }17 return i;18 }19 20 void split_key(char *ch,char *key,char *value)21 {22 int len;23 int i;24 int j;25 len=strlen(ch);26 j=0;27 for(i=0;i
- 代碼就放在那里,具體的操作過程就用截圖方式進行講解
- (1) 打開服務器,輸入網址: http://192.168.198.157:8080/qc/login
- (2)如果沒有通過移動端的的驗證,此時點擊提交是不起作用的。
- (3)我們使用手機客戶端進行驗證(由于我沒有設計可用的APP,這里使用GET方式,自己構造一個。注意,如果已經有了客戶端那么,可以通過客戶端APP自行構造一個請求,可以是post,也可以是另外一個action然后進行驗證什么的?傊趺窗踩,怎么方便怎么來。)下面這個是我手機通過掃二維碼,然后手動構造一個get請求得到的。(請求如下: http://192.168.198.157:8080/qc/GL199v8zsHV2bu7R7Qad?username=admin&code=GL199v8zsHV2bu7R7Qad)
- (4)好了,我們可以在那個login界面上點擊登錄就可以登錄進去了。(這里為什么不像微信那樣,APP客戶端一掃描確認,瀏覽器就直接跳轉,而是要手動點擊提交按鈕呢?那是因為我對前端的技術不是很了解,不知道怎么構建一個長連接,和跳轉什么的。所以就弄成簡單的,手動點擊了,不過這些都不是重點)
- (5)下面這些是服務器的一些信息
- 還有一個問題就是如果訪問的次數(shù)多了,那些中間文件就太多了,這時可以通過一個腳本,按時間進行清理。
- 處理的流程圖
- 終于完成了。心情有點小激動了。
學習教程快速掌握從入門到精通的電腦知識