本文主要為大家講述了PHP實現QQ登入的開原理以及相關的程式碼實現過程,對此有興趣和需要的朋友參考下吧。
第三方登錄,就是使用大家比較熟悉的例如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下載 我下載的是 PHP SDK v2.1
#5、仔細觀察sdk我們會發現它包含有4個資料夾、2個文件,其中最主要的是API資料夾,其餘的我覺得都可以忽略不看(你看也沒事),按照這篇文檔一步一步往下進行,你就可以實現登入的功能。
6、將API資料夾拷貝到你的專案裡,至於拷貝到專案的哪個資料夾,只要你能引入就行,看你心情來就可以,前期準備做好,接下來就是寫程式了。
7、打開你拷貝到專案裡的API資料夾,其中有一個comm資料夾,再次打開comm你就能看到一個叫 inc.php 的傢伙,打開它!將上文記在你小本本上的APPID 和APPKEY填入相關位置,大概形式是這樣的
{"appid":"你的appid","appkey":"你的appkey","callback":"你的網站回呼域","scope":"get_user_info"}
#8 、程式碼如下
<?php /** * Created by PhpStorm. * User: qichao * Date: 2018/1/31 * Time: 下午7:22 */ 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伺服器,再訪問,就不會有這個錯誤了。
2. linux下的PHP,就必須安裝openssl模組,安裝好了以後就可以存取了。
#
以上是PHP實作QQ登入的開原理與實作過程php實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!