PHP實現QQ登錄的原理和實現過程
2018-02-08 學習與分享 PHP自學中心
第三方登錄,就是使用大家比較熟悉的比如QQ、微信、微博等第三方軟件登錄自己的網站,這可以免去注冊賬號、快速留住用戶的目的,免去了相對復雜的注冊流程。下邊就給大家講一下怎么使用PHP開發QQ登錄的功能。
1、進入QQ互聯官網進行登錄(可以使用自己的QQ或者重新注冊一個QQ號作為咱們項目的單獨QQ進行管理),地址:https://connect.qq.com/
2、點擊“應用管理”進入QQ互聯管理中心,在這里進行相關應用的創建,分為 網站應用 和 移動應用。選擇自己想要的應用進行資料的填寫(審核需要等待大概7天左右),審核通過你將獲得APP ID
和APP Key,請拿小本本記上!請拿小本本記上!請拿小本本記上!(重要的事情說三遍!!!)
3、審核通過獲得相關接口:get_user_info。
4、下載QQ互聯相關的demo http://wiki.connect.qq.com/sdk%E4%B8%8B%E8%BD%BD 我下載的是 PHP SDK v2.1
廣告
去逛逛
5、仔細觀察sdk我們會發現它包含有4個文件夾、2個文件,其中最主要的是API文件夾,其余的我覺得都可以忽略不看(你看也沒事),按照這篇文檔一步一步往下進行,你就可以實現登錄的功能。
6、將API文件夾拷貝到你的項目里,至于拷貝到項目的哪個文件夾,只要你能引入就行,看你心情來就可以,前期準備做好,接下來就是寫代碼了。
7、打開你拷貝到項目里的API文件夾,其中有一個comm文件夾,再次打開comm你就能看到一個叫 inc.php 的家伙,打開它!將上文記在你小本本上的APPID 和 APPKEY填寫到相關位置,大概形式是這樣的
<?php die('forbidden'); ?>
{"appid":"你的appid","appkey":"你的appkey","callback":"你的網站回調域","scope":"get_user_info"}
8、代碼如下
<?php
/**
- Created by PhpStorm.
- User: qichun
- Date: 2018/2/8
- */
namespace wechat\controllers;
use wechat\common\BaseController;
require(DIR . '/../tools/API/qqConnectAPI.php'); //引入QQ互聯SDK,這是按照我自己項目的路徑引入的。
class QqloginController extends BaseController{
//登錄方法
public function actionQqlogin(){
$qc = new \QC();
$qc->qq_login();
}
//這個方法是當你通過QQ登錄成功以后想要跳轉回來的地址,比如你想登錄成功以后跳轉到百度,那你把下文的$url改為百度鏈接即可!
public function actionCallback(){
header("Content-type: text/html; charset=utf-8");
/* 這里請根據你的項目開發需求(比如獲取登錄用戶的昵稱、頭像、年齡等等),進行相關代碼的開發,具體數據獲取方法,請查閱QQ互聯文檔
$qc = new \QC();
$access_token = $qc->qq_callback();
$openid = $qc->get_openid();
*/
$url = "http://wechat.xxx.cn/index.php?r=cms/home";
header("Location:".$url);
exit();
}
}
至此呢你的整個流程就走完了,簡單吧!!!整個功能流程類似下圖:
如果你在開發過程中遇到如下問題:
file_get_contents(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP?
出現這個錯誤的原因很簡單,php配置中的加密模塊并沒有打開
解決方案:1.(windows)php.ini配置文件,定位到下圖藍色所示的位置,把extension=php_openssl.dll 前面的; 分號去掉
去掉以后重新啟動Apache或者nginx服務器,再訪問,就不會有這個錯誤了。
- linux下的PHP,就必須安裝openssl模塊,安裝好了以后