日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 程序人生 > 隨筆 > CI框架QQ一鍵登錄(CI如何使用QQ互聯)

CI框架QQ一鍵登錄(CI如何使用QQ互聯)

來源:程序員人生   發布時間:2015-11-19 00:34:44 閱讀次數:13469次
   在這里教大家如何用CI框架進行QQ一鍵登錄,本文為實戰篇,已經運行在平臺上了,按照我的步驟來,你也可以使用CI框架進行QQ一鍵登陸

第一步:注冊QQ互聯 地址http://connect.qq.com
創建應用,如下圖所示

這里網站地址填寫網站首頁地址,回調地址填寫member控制器下的qq_login方法,即圖片上的回調地址

第二步:配置服務器
如果你的系統沒有安裝curl,請先安裝curl。
在php.ini中,需要開啟如下代碼
  1. extension=php_openssl.dll 
  2. extension=php_curl.dll 
  3. allow_url_include = on 


第三步:新建配置文件
在application\config下新建文件qq_setting.php并輸入如下內容
 

  1. <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 
  2.  
  3.     /** 
  4.      * @qq互聯配置信息 
  5.      * 默認開啟get_user_info模塊 
  6.      * **/ 
  7.  
  8.     $config['inc_info'] = array
  9.                 'appid' => '第一步中申請的appid'
  10.                 'appkey' => '第一步中申請的key'
  11.                 'callback' => '第一步中回調地址' 
  12.     ); 

第四步:創建自定義類
在application\libraries下新建個文件夾,命名為tencent,然后再tencent下創建文件oauth.php
oauth.php文件內容如下
 

  1. <?php 
  2. /* 
  3. 騰訊QQ登陸模塊 
  4. www.jyygyx.com 程序員人生 
  5. 2015-11-19 
  6. */     
  7.     class Oauth 
  8.     { 
  9.         public function __construct() { 
  10.             $this->access_token= ''
  11.             $this->openid = ''
  12.             $CI = &get_instance(); 
  13.             $CI->config->load('qq_setting'); 
  14.             $this->qq_set= $CI->config->item('inc_info'); 
  15.         } 
  16.  
  17.      //獲得登錄的 openid 
  18.         public function wget_openid($code){ 
  19.             $url = "https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id={$this->qq_set['appid']}&client_secret={$this->qq_set['appkey']}&code={$code}&redirect_uri={$this->qq_set['callback']}"
  20.            $content=file_get_contents($url); 
  21.                     if (stristr($content,'access_token=')) { 
  22.                 $params = explode('&',$content); 
  23.                 $tokens = explode('=',$params[0]); 
  24.                 $token  = $tokens[1]; 
  25.                 $this->access_token=$token
  26.                 if ($token) { 
  27.                      $url="https://graph.qq.com/oauth2.0/me?access_token=$token"
  28.                     $content=file_get_contents($url); 
  29.                      $content=str_replace('callback( ','',$content); 
  30.                      $content=str_replace(' );','',$content); 
  31.                      $returns = json_decode($content); 
  32.                      $openid = $returns->openid; 
  33.                      $this->openid = $openid
  34.                      $_SESSION["token2"]  = $openid
  35.                 } else { 
  36.                     $openid=''
  37.                 } 
  38.             } elseif (stristr($content,'error')) { 
  39.                 $openid=''
  40.             } 
  41.              
  42.             return $openid
  43.         } 
  44. //用戶登陸       
  45.     public function redirect_to_login() { 
  46.             //跳轉到QQ登錄頁的接口地址, 不要更改!! 
  47.             $redirect = "https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id={$this->qq_set['appid']}&scope=&redirect_uri={$this->qq_set['callback']}"
  48.             header("Location:$redirect"); 
  49.         } 
  50.          
  51.  /** 
  52.         * 返回用戶信息 
  53.         *  
  54. */ 
  55.         public function get_user_info(){ 
  56.             $url = "https://graph.qq.com/user/get_user_info?access_token=$this->access_token&oauth_consumer_key={$this->qq_set['appid']}&openid=$this->openid"
  57.             //$content=file_get_contents($url); 
  58.                  
  59.            $content=file_get_contents($url); 
  60.             $result = json_decode($content); 
  61.             return $result->nickname; 
  62.         } 
  63.      
  64.  
  65.     } 

這個代碼,大家直接復制就可以用了

第五步:創建一個member控制器,在member控制器中,新建一個qq_login方法
代碼如下
 

  1. //qq用戶登陸 
  2.   public function qq_login(){ 
  3.          $this->load->library('tencent/oauth','oauth');  
  4.          if(!isset($_GET['code'])){ 
  5.                       $this->oauth->redirect_to_login();//登陸騰訊qq,并返回到回調地址 
  6.           }else
  7.              $code = $_GET['code']; 
  8.              $openid =  $this->oauth->wget_openid($code); 
  9.              if(!emptyempty($openid)){ 
  10.  
  11.                $data['info']=$this->m->get_member($openid,'connectid');//通過connectid獲取會員信息 
  12.                  if(!emptyempty($data['info'])){ 
  13.                        //QQ已存在于數據庫(已綁定QQ的用戶),則直接轉向登陸操作 
  14.                         $res=$this->m->check_login($data['info'],'qq'); 
  15.                            if($res==true){ 
  16.                                $this->message('登錄成功!',site_url($this->router->class)); 
  17.                            }else
  18.                              $this->message('用戶名或密碼錯誤,',site_url($this->router->class.'/login')); 
  19.                            } 
  20.          
  21.                  }else
  22.                    //未存在于數據庫中,跳去完善資料頁面。頁面預置用戶名(QQ返回是UTF8編碼,如有需要進行轉碼) 
  23.                          $user = $this->oauth->get_user_info();//獲取用戶信息 
  24.                           
  25.                          $data['nickname'] =$user
  26.                          $data['connectid'] = $openid
  27.                          $this->session->set_userdata('qqsession',$data); 
  28.                          $this->seotitle='用戶注冊-'.$this->seotitle; 
  29.                          $this->load->view($this->router->class.'/register'); 
  30.                           
  31.                             
  32.                  } 
  33.              }else
  34.                  $this->login(); 
  35.              } 
  36.          }   
  37.  
  38.     } 

上面是我實際項目的方法,大家可以根據自己的項目修改就可以了。

第六步:放置QQ登陸圖標
任意地方,放如下代碼就可了

  1. <a href="/member/qq_login" target="_blank"><img src="skin/member/images/qq.jpg"></a> 


到這里,就完成了全部功能,QQ一鍵登錄用于CI框架,大家還有什么不明白的地方,都可以在程序員人生網給我留言

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 精品久久久一区二区 | 精品一区二区三区四区五区 | 日韩一区二区视频 | 亚洲免费观看视频 | 国产黄色片在线观看 | 激情在线视频 | 国产一区亚洲二区 | 国产精品久久国产三级国电话系列 | 日韩不卡在线观看 | 天堂av一区| 国产精品欧美一区二区 | 99精品网 | 99亚洲视频| 黄色免费看网站 | 黄a视频| 久久久青草婷婷精品综合日韩 | 国产精品99久久久久久似苏梦涵 | 成人性生交大片免费看中文网站 | 成人欧美一区二区三区视频网页 | 亚洲精品9999 | 夜色成人av| 99精品视频免费在线观看 | 国产精品免费看 | 淫影视 | 日韩欧美视频在线 | 国产日韩欧美精品 | 干片先生在线观看 | 欧美性猛交xxxx乱大交蜜桃 | 国产一区二区三区免费观看网站上 | 欧美激情视频一区二区三区 | 成人精品免费视频 | 三级网站| 欧美精品导航 | 精品国产鲁一鲁一区二区张丽 | 色av吧| 日韩午夜免费视频 | 国产高清网站 | a成人| 亚洲一区av在线 | 欧美日韩在线一区 | 经典三级第一页 |