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

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

Thinkphp6實(shí)現(xiàn)微信掃碼登錄

發(fā)表日期:2024-01-23 16:03:23   作者來(lái)源:黎云輝   瀏覽:938   標(biāo)簽:微信掃碼登錄    
微信掃碼登錄已成為許多網(wǎng)站和應(yīng)用的常見(jiàn)登錄方式之一。在本文中,我們將介紹如何使用ThinkPHP 6框架來(lái)實(shí)現(xiàn)微信掃碼登錄功能。通過(guò)本文的指導(dǎo),您將能夠快速搭建一個(gè)安全可靠的微信掃碼登錄系統(tǒng)。
 
一、準(zhǔn)備工作
在開(kāi)始之前,確保您已經(jīng)滿足以下幾個(gè)條件:
1. 擁有一個(gè)有效的微信開(kāi)放平臺(tái)賬號(hào),并創(chuàng)建一個(gè)新的網(wǎng)站應(yīng)用。
2. 安裝好了最新穩(wěn)定版本的ThinkPHP 6框架。
3. 了解ThinkPHP 6的基本使用方法和目錄結(jié)構(gòu)。
 
二、獲取微信開(kāi)放平臺(tái)的應(yīng)用信息
1. 登錄微信開(kāi)放平臺(tái),進(jìn)入“應(yīng)用管理”頁(yè)面。
2. 創(chuàng)建一個(gè)新的網(wǎng)站應(yīng)用,并填寫(xiě)相關(guān)信息。
3. 在應(yīng)用詳情頁(yè)面中,獲取到“AppID”和“AppSecret”。
 
三、編寫(xiě)控制器代碼
 
public function index(){
 
    $user = session('member_id');
 
 
    if($user){
 
        $this->error('你已登錄,請(qǐng)勿重復(fù)登錄');
 
    }else{
 
        $appid = "你的appid";
 
        $rand_code = 'M' . time() . rand('100001', '999999'); //隨機(jī)字符串
 
        $str = "https://你的域名/login/getToken?rand_code=".$rand_code;//返回參數(shù)的地址
 
        $redirect_uri=urlencode($str);
 
        $scope = 'snsapi_base';//不需要授權(quán)
 
        $url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' . $appid . '&redirect_uri=' . $redirect_uri . '&response_type=code&scope=' . $scope . '&state=123#wechat_redirect';
 
        $img = $this->signPng($url);
 
    }
 
    // 渲染模板輸出
    return view('', compact('ewm','img','rand_code'));
}
 
    /**
    * 生成二維碼
    * @return \think\Response
    */
    public function signPng($url){
 
        header("Content-Type:image/png");
 
        // 引入插件
        require_once fw_root().'extend/Phpqrcode/phpqrcode.php';
 
        $qRcode = new \QRcode();
 
        ob_start();
 
        // 糾錯(cuò)級(jí)別:L、M、Q、H
        $level = 'L';
        // 圖片分辨率
        $size = 4;
        // 第一個(gè)參數(shù)可以放置鏈接或者內(nèi)容
        $qRcode->png($url, false, $level,$size);
 
        $imageString = base64_encode(ob_get_contents());
 
        ob_end_clean();
 
        // return "";
        return $imageString;
}
 
//處理返回信息
public function getToken(){
 
        $code = $this->request->get('code');//微信返回的信息
 
        $promo_code = $this->request->get('rand_code');
 
        $appid = "你的appid";
 
        $secret = "你的AppSecret";
 
        $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'];
        
        //將用戶信息存入數(shù)據(jù)庫(kù)
        $mess['username'] = '微信用戶'.$openid;
        $mess['status'] = 1;
        $mess['code'] = $promo_code;
        $mess['create_time'] = time();
 
        $member_id = Db::name('member')->save($mess);
 
 
        return view('login_return');
 
    }
 
    //判斷登錄狀態(tài)
    public function login_status() {
 
        $rand_code = $this->request->get('rand_code');
 
        $member_id = Db::name('member')->where(['code' => $rand_code])->find();
 
        if($member_id){
 
            session('member_id',$member_id['username']);
 
            $result['code'] = 1;
            $result['msg'] = '登錄成功';
 
        }else{
 
            $result['code'] = 0;
 
 
        }
 
        return json($result);
    }
 
 
、創(chuàng)建視圖文件
1. 在項(xiàng)目的view目錄下創(chuàng)建一個(gè)login目錄,并在其中創(chuàng)建一個(gè)index.html文件:
   
   
   
       微信掃碼登錄
   
   
       

                    
                    

使用微信掃描二維碼登錄


                                    
        


   
 
、測(cè)試運(yùn)行
1. 在瀏覽器中訪問(wèn)http://localhost/myproject/login,將會(huì)看到一個(gè)二維碼。
2. 掃碼完成后會(huì)回調(diào)到getToken方法,并顯示“登錄成功!”的提示。
 
注意事項(xiàng):
1. 在使用微信掃碼登錄時(shí),確保網(wǎng)站已經(jīng)備案并配置了HTTPS安全證書(shū),以保證數(shù)據(jù)傳輸過(guò)程的安全性。
2. 驗(yàn)證用戶信息時(shí),根據(jù)業(yè)務(wù)需求進(jìn)行合理的校驗(yàn)與邏輯處理,比如保存用戶信息到數(shù)據(jù)庫(kù)或進(jìn)行權(quán)限控制等。
 
3. 公眾號(hào)必須是服務(wù)號(hào),才能開(kāi)通網(wǎng)頁(yè)授權(quán)接口
 
 
如沒(méi)特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請(qǐng)注明來(lái)自http://www.oulysa.com/news/6967.html
相關(guān)網(wǎng)站設(shè)計(jì)案例
人妻无码αv中文字幕久久| 肥老熟妇伦子伦456视频| 亚洲黄色免费网址| 国产AV午夜精品一区二区三区| 69精品人妻一区二区三区蜜桃| 四虎精品成人免费视频| 丰满少妇高潮惨叫久久久一| 国产强伦姧在线观看午夜| 波多野结衣AV一区二区三区中文| 国产真实伦在线观看| 欧美极品aⅴ影院天天视频| 国产精品麻豆羞羞答答| 经典三级在线观看呢观看| 久久精品国产欧美日韩99热| 中文无码一区二区不卡αv| 亚洲国产精品一区二区三区| 国产精品嫩草影院一二三区入口| 色狠狠色噜噜Av天堂一区| 久久人人爽人人爽人人片AV超碰| 国产69精品久久久久9999| mm1313亚洲国产精品| 久久精品国产亚洲AV蜜臀| 人妻丝袜精品一区二区无码av| 中文字幕无码视频专区在线播放| 99国产欧美另类久久久精品| 最新国产AV无码专区亚洲| 柠檬AV导航国产精品久久久| 国产亚洲欧美另类一区二区三区| 91久久精品午夜一区二区| 欧美精品v欧洲精品| 国产亚州精品女人久久久久久| 精品久久伊人中文字幕| 亚洲国产精品久久人人爱| 国产在线一区二区观看| 精品久久久久久无码中文字幕漫画| 成人精品视频99在线观看免费| 国产亚洲av片亚洲| 国产精品色午夜免费观看| 欧美日韩一区二区综合在线视频| 黑人巨大无码中文字幕无码| 久久精品国产精品亚洲综合|