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中在数据库中保存Checkbox数据(2)
Oct 09 PHP
如何在PHP中使用Oracle数据库(1)
Oct 09 PHP
php下实现折线图效果的代码
Apr 28 PHP
解析smarty模板中类似for的功能实现
Jun 18 PHP
zf框架的registry(注册表)使用示例
Mar 13 PHP
PHP父类调用子类方法的代码例子
Apr 09 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
Jun 13 PHP
php使用memcoder将视频转成mp4格式的方法
Mar 12 PHP
PHP简单日历实现方法
Jul 20 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
Oct 08 PHP
php微信公众号开发之关键词回复
Oct 20 PHP
使用laravel和ECharts实现折线图效果的例子
Oct 09 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中$this-&amp;gt;含义分析
2009/11/29 PHP
CI(CodeIgniter)框架介绍
2014/06/09 PHP
解决php的“It is not safe to rely on the system’s timezone settings”问题
2015/10/08 PHP
Alliance vs Liquid BO3 第三场2.13
2021/03/10 DOTA
jQuery 浮动广告实现代码
2008/12/25 Javascript
百度留言本js 大家可以参考下
2009/10/13 Javascript
Node.js实战 建立简单的Web服务器
2012/03/08 Javascript
通过Javascript将数据导出到外部Excel文档的函数代码
2012/06/15 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
2014/10/20 Javascript
node.js中的fs.truncate方法使用说明
2014/12/15 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
2015/04/06 Javascript
元素绑定click点击事件方法
2015/06/08 Javascript
举例讲解JavaScript中关于对象操作的相关知识
2015/11/16 Javascript
JavaScript制作简单的日历效果
2016/03/10 Javascript
移动端H5开发 Turn.js实现很棒的翻书效果
2016/06/20 Javascript
强大Vue.js组件浅析
2016/09/12 Javascript
js html css实现复选框全选与反选
2016/10/09 Javascript
AngularJS中的JSONP实例解析
2016/12/01 Javascript
PHP+jquery+ajax实现分页
2016/12/09 Javascript
xmlplus组件设计系列之按钮(2)
2017/04/26 Javascript
vue实现未登录跳转到登录页面的方法
2018/07/17 Javascript
微信小程序的线程架构【推荐】
2019/05/14 Javascript
js生成1到100的随机数最简单的实现方法
2020/02/07 Javascript
[59:44]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 paiN vs iG
2018/03/31 DOTA
python使用PyFetion来发送短信的例子
2014/04/22 Python
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
2015/10/13 Python
详解Python操作RabbitMQ服务器消息队列的远程结果返回
2016/06/30 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
2018/10/21 Python
Python 面向对象之封装、继承、多态操作实例分析
2019/11/21 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
哪种Python框架适合你?简单介绍几种主流Python框架
2020/08/04 Python
python反编译教程之2048小游戏实例
2021/03/03 Python
.NET初级开发工程师面试题(包括Javascript)
2012/08/22 面试题
公司市场专员岗位职责
2014/06/29 职场文书
北京故宫的导游词
2015/01/31 职场文书
游戏《东方异文石:爱亚利亚黎明》正式版发布
2022/04/03 其他游戏