<h5 style="color:green">現在越來越多的網站都實現了QQ快捷登錄功能,下面小編就教大家怎么實現:</h5>
[TOC]
一、申請接口
二、代碼實現
**一、申請接口:**
QQ登錄需要使用[QQ互聯](https://connect.qq.com/)。使用開發QQ登錄:

點擊菜單上的 “應用管理”:

點擊“創建應用” 選擇 “創建網站應用”:

填寫相關信息創建,提交,審核。(網站名稱和回調地址一定要寫對,且網站能正常訪問)

回到地址可以填寫多個,以后也可以修改

**二、代碼實現**
1.實現類庫:鏈接: [QQ登錄類庫](https://pan.baidu.com/s/1kVI66fd)<br>
鏈接: https://pan.baidu.com/s/1kVI66fd 密碼: 5rcz
2.登錄方法:
~~~
/**
* QQ登錄訪問頁
*/
function actionQqlogin(){
$http_referer = $_SERVER['HTTP_REFERER'];
$loginurl = "http://" . $_SERVER['HTTP_HOST'] . "/user/user/login";
if($http_referer==$loginurl){
$http_referer = url('default/index');
}
$_SESSION['HTTP_REFERER'] = $http_referer;
Helper_Qqlogin::qq_login();
}
~~~
3.回調方法:(回調方法在申請接口的時候填寫的)
~~~
/**
* QQ登錄回調
*/
function actionQqcallback(){
$get_user_info = Helper_Qqlogin::get_user_info();
$user = User::find("qq_openid='" . $get_user_info['qq_openid'] . "'")->getOne();
if($user->uid>0){//如果登錄過
$url = helper_session::get("HTTP_REFERER");
helper_session::set('HTTP_REFERER', null);
if ($user->status == 1) {
// 將登錄用戶的信息存入SESSION,以便應用程序記住用戶的登錄狀態
$this->_app->changeCurrentUser($user->aclData(), Helper_Array::toHashMap($user->roles, 'id', 'id'));
$user->last_ip = IP;
$user->last_time = CURRENT_TIMESTAMP;
$user->save();
}else{
//如賬號被禁用頁面跳轉
$this->_redirectMsg("操作錯誤", "賬號{$user->username}已經被禁用,請聯系管理員", $url,0,5);exit;
}
}else{//如果第一次登錄,跳到注冊頁面
helper_session::set('qq_openid',$get_user_info['qq_openid']);//設置session
helper_session::set('qq_user_info',$get_user_info);//設置session
$url = url("user::user/qqtel");
}
header("Location:$url");
}
~~~
4.到這里已經獲取到用戶QQ的openid即qq_openid。拿到這個信息就可以進行業務邏輯操作了。接下來就根據你的網站判斷需求進行即可。
<h5 style="color:green">有不懂的問題請下方留言,代碼中有的部分是我自己的邏輯,請根據需要自行修改</h5>
- 前言
- 軟件流程
- 快速體驗
- 需求分析
- 系統設計
- 數據庫設計
- 框架搭建
- 前端開發
- HTML
- CSS
- JavaScript
- Jquery
- 服務端開發
- PHP入門
- PHP開發環境搭建
- PHP基礎
- PHP字符串String
- PHP數組Array
- PHP時間Date
- PHP面向對象
- PHP函數封裝
- PHP類庫
- PHP-MYSQL
- 系統測試
- 開發測試
- 單元測試
- 集成測試
- 系統測試
- 部署上線
- 環境部署
- 權限設置
- 網站配置
- 上線運營
- 系統維護
- 前端技術點
- HTML
- HTML5結構
- CSS
- CSS3實現鼠標移動到圖片上圖片變大
- 微信開發
- 公眾號區別
- 微信支付接口
- 擴展:API
- 1.網站QQ登錄的實現
- 2.網站微信掃描登錄的實現
- 擴展:插件
- H5上傳插件
- H5文件上傳插件
- 擴展:函數
- 1.數組轉數
- 2.移除數組空元素
- 3.返回數組中指定鍵的值
- 4.數組按照指定字段的值分組
- 5.網頁無圖片或者圖片不存在自動顯示默認圖
- 6.返回客戶端IP地址
- 7.當數據不顯示為空的時候顯示默認值
- 擴展:類庫【面向對象】
- 類的定義和使用
- 擴展:Mysql
- mysql基礎
- 擴展:Linux
- Linux常用命令
- Linux創建svn
- ThinkPHP5專欄
- TP5專欄解讀
- 教你怎么使用TP5
- 問題解決篇
- 網頁直接打開PDF或強制下載以及header和content-type參數詳解
- 讓PHP去執行svn命令踩過的坑
- 微信開發 支付開發redirect_uri參數錯誤解決辦法
- 全棧開發實例一
- 1.需求分析
- 2.系統設計
- 3.數據庫設計
- 4.框架搭建
- 5.模塊設計
- 6.前端開發
- 7.這里小編就不更新了,太累人,直接上源碼給你們吧
- 結語
- 【新】github和packagist上的資源