亚洲国产精品成人无码区,公天天吃我奶躁我的比视频,亚洲国产欧美视频亚洲国产精品一区二区成人片不卡,天天躁日日躁狠狠躁视频2021,起视碰看97视频在线少妇久久久久久人妻无码, 芒果乱码一线二线三线新区 ,亚洲熟妇无码AⅤ不卡在线播放,人妻少妇乱子伦无码专区

400-800-9385
網(wǎng)站建設(shè)資訊詳細

Thinkphp3.2如何使用微信掃碼實現(xiàn)網(wǎng)頁登錄的功能

發(fā)表日期:2021-06-21 17:37:17   作者來源:陳應(yīng)信   瀏覽:3338   標(biāo)簽:網(wǎng)頁登錄    
隨著聊天工具的不斷發(fā)展,如今在眾多的聊天工具中微信一騎絕塵,也就是基本每個人的手機都會有微信軟件,所以微信掃碼登錄網(wǎng)頁端比新浪,QQ等第三方平臺登錄使用都更加廣泛。
 

第三方登陸

 
微信掃碼網(wǎng)頁端實現(xiàn)登錄的原理,是利用公眾號頁面的微信登錄功能,不過會一些代碼的增加和改動,使手機端與PC端能形成數(shù)據(jù)的聯(lián)動,下面就著重講一下改動和增加代碼的內(nèi)容。
第一步,生成一個二維碼,如下圖所示:

二維碼

即用手機掃碼該二維碼后,首次登錄需獲取用戶的信息,然后網(wǎng)頁直接登錄,二維碼是一個跳轉(zhuǎn)的URL鏈接地址,內(nèi)容如下:
//隨機字符串,用于聯(lián)運PC與手機的媒介
$rand_code = 'M'.time().rand('100001','999999');
//登錄后返回的地址
$REDIRECT_URI = '域名/Weixin/login_return?rand_code='.$rand_code;
//微信登錄地址,也是二維碼地址
$scope='snsapi_userinfo';//表示需要授權(quán)
$url='https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$APPID.'&redirect_uri='.urlencode($REDIRECT_URI).'&response_type=code&scope='.$scope.'&state=1#wechat_redirect';//登錄驗證
 vendor("phpqrcode.phpqrcode");//調(diào)用二維碼類
$level = 'L';// 點的大小:1到10,用于手機端4就可以了
$size = 7;/* 二維碼的大小,下面注釋了把二維碼圖片保存到本地的代碼,如果要保存圖片,用$fileName替換第二個參數(shù)false*/
$fileName ='Uploads/qcode/2.png'; // 生成的文件名
$QRcode = new \QRcode();
 $QRcode->png($url, $fileName, $level, $size);//生成二維碼
 $this->qrcode =  .'/'.$fileName;//二維碼路徑
$this->rand_code = $rand_code;//將隨機數(shù)傳遞到掃碼的頁面
如上所示,$url就是二維碼的內(nèi)容,掃碼后手機就瀏覽$url,手機確認(rèn)授權(quán)登錄后,就會返回$REDIRECT_URI的地址,方法如下:
function login_return(){
$rand_code = I('get.rand_code','');//PC生成的隨機數(shù)
$appid = C('APPID');
$secret = C('SECRET');
$code = $_GET["code"];
//獲取用戶的access_token和openid
$get_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$secret.'&code='.$code.'&grant_type=authorization_code';
$data = fopen($get_token_url, "rb");
$data = stream_get_contents($data);
@fclose($data);
$json_obj = json_decode($data,true);
 
//根據(jù)openid和access_token查詢用戶信息
 $access_token = $json_obj['access_token'];
 $openid = $json_obj['openid'];
$get_user_info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid.'&lang=zh_CN';
 $data2 = fopen($get_user_info_url, "rb");
$data2 = stream_get_contents($data2);
@fclose($data2);
//解析json
$info = json_decode($data2,true); //$info即是用戶信息的數(shù)組

 
上面是代碼,原理:手機掃碼登錄后,獲取用戶的信息,如果昵稱,頭像,地區(qū)等,最重要的是openid,根據(jù)openid查詢會員表有沒有存在,如果存在則將隨機數(shù)$rand_code更新到會員表member的rand_code里,如果不存在,則添加一行會員信息,添加的內(nèi)容是用戶的昵稱,頭像,openid, rand_code,因為rand_code已經(jīng)保存在會員表的,所以PC網(wǎng)頁端用定時執(zhí)行的函數(shù),每隔幾秒查詢會員表中是否存在rand_code,如果存在則登錄成功,并且獲取該會員的信息,PC端的JS如下:
 

實現(xiàn)效果


 
微信登錄的功能比較簡單,主要是知道原理是怎么實現(xiàn)的就可以了。
 
如沒特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請注明來自http://www.oulysa.com/news/6077.html
相關(guān)網(wǎng)站設(shè)計案例
精品卡通动漫在线观看视频一区| 国产在线不卡精品网站| 久久精品国产99国产精品| 精品国产自在在线午夜| 久久精品国产亚洲AV大全| 99久久99久久精品免费看蜜桃| 国产成人精品无码免费看| 日本在线看片人成视频1000| 91精品国产免费无套国产| 亚洲熟女少妇一区二区| 亚洲精品无码国产123| 亚洲伊人久久精品影院| 亚洲一区波多野结衣在线| 国产精品免费久久久久久蜜桃| 中文字幕亚洲欧美日韩| 女人被添荫蒂舒服极了视频小说| 亚洲欧洲日韩在线成人观看| 精品亚洲成A人片在线观看| a丫久久久久久一级毛片| 波多野成人无码精品电影| 亚洲日韩中文字幕日韩在线| 国模无码国产在线视频| 日韩少妇内射免费播放| 97久久超碰极品视觉盛宴| 国产女人喷潮视频在线观看| 亚洲?V无码乱码在线观看裸奔| 男女作爱免费网站| 69久久综合狠狠综合久久| 一本大道东京热无码中字| 国产a∨国片精品白丝美女视频| 久久久久精品久久久久影院蜜桃| 国产一区二区三区乱码在线观看| 蜜臀久久99精品久久久久久| 全部免费的毛片在线看| 在线视频一区二区免费| 99麻豆久久久国产精品免费| 亚洲SM另类一区二区三区| 亚洲日韩aⅴ在线视频| 亚洲熟女乱综合一区二区| 最新欧美日韩一区二区三区| 無碼人妻久久一區二區三區不卡|