多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 程序人生 > 隨筆 > CI框架QQ一鍵登錄(CI如何使用QQ互聯(lián))

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

來源:程序員人生   發(fā)布時(shí)間:2015-11-19 00:34:44 閱讀次數(shù):13438次
   在這里教大家如何用CI框架進(jìn)行QQ一鍵登錄,本文為實(shí)戰(zhàn)篇,已經(jīng)運(yùn)行在平臺(tái)上了,按照我的步驟來,你也可以使用CI框架進(jìn)行QQ一鍵登陸

第一步:注冊(cè)QQ互聯(lián) 地址http://connect.qq.com
創(chuàng)建應(yīng)用,如下圖所示

這里網(wǎng)站地址填寫網(wǎng)站首頁地址,回調(diào)地址填寫member控制器下的qq_login方法,即圖片上的回調(diào)地址

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


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

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

第四步:創(chuàng)建自定義類
在application\libraries下新建個(gè)文件夾,命名為tencent,然后再tencent下創(chuàng)建文件oauth.php
oauth.php文件內(nèi)容如下
 

  1. <?php 
  2. /* 
  3. 騰訊QQ登陸模塊 
  4. www.vxbq.cn 程序員人生 
  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.             //跳轉(zhuǎn)到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.     } 

這個(gè)代碼,大家直接復(fù)制就可以用了

第五步:創(chuàng)建一個(gè)member控制器,在member控制器中,新建一個(gè)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,并返回到回調(diào)地址 
  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獲取會(huì)員信息 
  12.                  if(!emptyempty($data['info'])){ 
  13.                        //QQ已存在于數(shù)據(jù)庫(已綁定QQ的用戶),則直接轉(zhuǎn)向登陸操作 
  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('用戶名或密碼錯(cuò)誤,',site_url($this->router->class.'/login')); 
  19.                            } 
  20.          
  21.                  }else
  22.                    //未存在于數(shù)據(jù)庫中,跳去完善資料頁面。頁面預(yù)置用戶名(QQ返回是UTF8編碼,如有需要進(jìn)行轉(zhuǎn)碼) 
  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='用戶注冊(cè)-'.$this->seotitle; 
  29.                          $this->load->view($this->router->class.'/register'); 
  30.                           
  31.                             
  32.                  } 
  33.              }else
  34.                  $this->login(); 
  35.              } 
  36.          }   
  37.  
  38.     } 

上面是我實(shí)際項(xiàng)目的方法,大家可以根據(jù)自己的項(xiàng)目修改就可以了。

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

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


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

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 福利一区国产 | 国产在线每日更新 | www.黄色免费 | 色偷偷亚洲女人天堂观看欧 | 人善交video| 久久精品国产69国产精品亚洲 | 在线h网站 | 亚洲专区中文字幕 | 国产一区2区3区 | 日本不卡视频一区二区 | 亚洲精品成人a在线观看 | 久久不射网 | 天天鲁一鲁 | 亚洲免费精品视频 | 国产精品无码专区在线观看 | yellow中文字幕网 | 亚洲国产天堂久久综合图区 | 一级毛毛片毛片毛片毛片在线看 | 边吃奶边添下面就爽 | 久久影院在线观看 | 欧美性猛交xxxx乱大交be | 欧美一区二区精品 | 国产亚洲精品国产 | 国产一区二区在线 |播放 | 精品视频在线观看 | 在线播放人成午夜免费视频 | 最新国产精品精品视频 | 国产欧美一区二区三区视频在线观看 | 欧美日韩天堂 | 在线免费看 | 国产尤物精品视频 | 熟妇毛片 | 国产一区二区三区四区五区 | 中文字幕乱码中文乱码综合 | 在线欧美日韩精品一区二区 | 99久久999久久久综合精品涩 | 成人国产网站v片免费观看 成人国产亚洲 | 成年人免费视频网站 | 最近中文字幕++中文 | 中文字幕在线视频第一页 | 一二三四视频中文字幕在线看 |