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脚本中include文件出错解决方法
Nov 20 PHP
了解Joomla 这款来自国外的php网站管理系统
Mar 11 PHP
php报表之jpgraph柱状图实例代码
Aug 22 PHP
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
Aug 01 PHP
PHP jQuery表单,带验证具体实现方法
Feb 15 PHP
PHP中unset,array_splice删除数组中元素的区别
Jul 28 PHP
php技术实现加载字体并保存成图片
Jul 27 PHP
解读PHP中的垃圾回收机制
Aug 10 PHP
php bootstrap实现简单登录
Mar 08 PHP
PHP 实现浏览记录并按日期分组
May 11 PHP
PHP实现一个按钮点击上传多个图片操作示例
Jan 23 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
Mar 26 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防攻击代码升级版
2010/12/29 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
WordPress网站性能优化指南
2015/11/18 PHP
Symfony2安装的方法(2种方法)
2016/02/04 PHP
实现PHP框架系列文章(6)mysql数据库方法
2016/03/04 PHP
PHP判断文件是否被引入的方法get_included_files用法示例
2016/11/29 PHP
redis查看连接数及php模拟并发创建redis连接的方法
2016/12/15 PHP
php实现微信支付之现金红包
2018/05/30 PHP
在textarea中显示html页面的javascript代码
2007/04/20 Javascript
JS array 数组详解
2009/03/22 Javascript
基于jquery的下拉框改变动态添加和删除表格实现代码
2020/09/12 Javascript
了不起的node.js读书笔记之mongodb数据库交互
2014/12/22 Javascript
将页面table内容与样式另存成excel文件的方法
2015/08/05 Javascript
判断输入的字符串是否是日期格式的简单方法
2016/07/11 Javascript
深入分析javascript中console命令
2016/08/14 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
利用ES6实现单例模式及其应用详解
2017/12/09 Javascript
vuejs+element UI点击编辑表格某一行时获取内容填入表单的示例
2018/10/31 Javascript
策略模式实现 Vue 动态表单验证的方法
2019/09/16 Javascript
利用React高阶组件实现一个面包屑导航的示例
2020/08/23 Javascript
python在windows下创建隐藏窗口子进程的方法
2015/06/04 Python
Python基于递归算法实现的走迷宫问题
2017/08/04 Python
python验证身份证信息实例代码
2019/05/06 Python
Python常用模块os.path之文件及路径操作方法
2019/12/03 Python
django多种支付、并发订单处理实例代码
2019/12/13 Python
为中国消费者甄选天下优品:网易严选
2016/08/11 全球购物
意大利在线眼镜精品店:Ottica Lipari
2019/11/11 全球购物
荷兰家电销售网站:Welhof
2020/12/08 全球购物
TCP/IP的分层模型
2013/10/27 面试题
医学院毕业生自荐信
2013/11/08 职场文书
公司年会晚宴演讲稿
2014/01/06 职场文书
六十岁生日答谢词
2014/01/10 职场文书
班长自荐书范文
2014/02/11 职场文书
教师四风对照检查材料思想汇报
2014/09/17 职场文书
浅谈Vue的computed计算属性
2022/03/21 Vue.js
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/07 其他游戏