PHP实现QQ登录的开原理和实现过程


Posted in PHP onFebruary 04, 2018

第三方登录,就是使用大家比较熟悉的比如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文件夹,其余的我觉得都可以忽略不看(你看也没事),按照这篇文档一步一步往下进行,你就可以实现登录的功能。

PHP实现QQ登录的开原理和实现过程

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: 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();
 }
}

至此呢你的整个流程就走完了,简单吧!!!整个功能流程类似下图:

PHP实现QQ登录的开原理和实现过程

如果你在开发过程中遇到如下问题:

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 相关文章推荐
PHP 身份证号验证函数
May 07 PHP
php循环检测目录是否存在并创建(循环创建目录)
Jan 06 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
Jun 18 PHP
PHP删除HTMl标签的三种解决方法
Jun 30 PHP
PHP 通过Socket收发十六进制数据的实现代码
Aug 16 PHP
CodeIgniter框架提示Disallowed Key Characters的解决办法
Apr 21 PHP
php调用google接口生成二维码示例
Apr 28 PHP
PHP Opcache安装和配置方法介绍
May 28 PHP
PHP中生成UUID自定义函数分享
Jun 10 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
Feb 23 PHP
php使用redis的几种常见操作方式和用法示例
Feb 20 PHP
XAMPP升级PHP版本实现步骤解析
Sep 04 PHP
PHP实现正则表达式分组捕获操作示例
Feb 03 #PHP
php实现解析xml并生成sql语句的方法
Feb 03 #PHP
PHP删除数组中指定下标的元素方法
Feb 03 #PHP
php学习笔记之mb_strstr的基本使用
Feb 03 #PHP
php通过pecl方式安装扩展的实例讲解
Feb 02 #PHP
PHP实现对图片的反色处理功能【测试可用】
Feb 01 #PHP
php 删除一维数组中某一个值元素的操作方法
Feb 01 #PHP
You might like
php判断并删除空目录及空子目录的方法
2015/02/11 PHP
PHP基于文件存储实现缓存的方法
2015/07/20 PHP
PHP PDOStatement::fetchAll讲解
2019/01/31 PHP
彻底搞懂JS无缝滚动代码
2007/01/03 Javascript
JavaScript 动态创建VML的方法
2009/10/14 Javascript
JavaScript 学习笔记一些小技巧
2010/03/28 Javascript
JQuery select标签操作代码段
2010/05/16 Javascript
JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
2012/10/11 Javascript
js jq 单击和双击区分示例介绍
2013/11/05 Javascript
动态的创建一个元素createElement及删除一个元素
2014/01/24 Javascript
纯JS实现本地图片预览的方法
2015/07/31 Javascript
JavaScript中Boolean对象的属性解析
2015/10/21 Javascript
jQuery插件开发精品教程让你的jQuery提升一个台阶
2016/01/27 Javascript
jQuery事件处理的特征(事件命名机制)
2016/08/23 Javascript
详解react使用react-bootstrap当轮子造车
2017/08/15 Javascript
JavaScript贪吃蛇小组件实例代码
2017/08/20 Javascript
BootStrap 标题设置跨行无效的解决方法
2017/10/25 Javascript
Vue中el-form标签中的自定义el-select下拉框标签功能
2020/04/20 Javascript
Linux下Python获取IP地址的代码
2014/11/30 Python
python执行外部程序的常用方法小结
2015/03/21 Python
玩转python selenium鼠标键盘操作(ActionChains)
2020/04/12 Python
python 中的int()函数怎么用
2017/10/17 Python
python版DDOS攻击脚本
2019/06/12 Python
利用Python检测URL状态
2019/07/31 Python
Python脚本操作Excel实现批量替换功能
2019/11/20 Python
浅谈图像处理中掩膜(mask)的意义
2020/02/19 Python
150行Python代码实现带界面的数独游戏
2020/04/04 Python
Python基于pyjnius库实现访问java类
2020/07/31 Python
Python如何读写二进制数组数据
2020/08/01 Python
使用CSS3的::selection改变选中文本颜色的方法
2015/09/29 HTML / CSS
贝玲妃英国官网:Benefit英国
2018/02/03 全球购物
匡威意大利官方商店 :Converse意大利
2018/11/27 全球购物
领导接待方案
2014/03/13 职场文书
思想品德课教学反思
2016/02/24 职场文书
如何使用CocosCreator对象池
2021/04/14 Javascript
python中的被动信息搜集
2021/04/29 Python