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 相关文章推荐
用 PHP5 轻松解析 XML
Dec 04 PHP
php面向对象全攻略 (一) 面向对象基础知识
Sep 30 PHP
php 安全过滤函数代码
May 07 PHP
PHP无法访问远程mysql的问题分析及解决
May 16 PHP
服务器变量 $_SERVER 的深入解析
Jul 02 PHP
ThinkPHP中自定义目录结构的设置方法
Aug 15 PHP
php实现上传图片保存到数据库的方法
Feb 11 PHP
php从数组中随机选择若干不重复元素的方法
Mar 14 PHP
php实现猴子选大王问题算法实例
Apr 20 PHP
php实现随机显示图片方法汇总
May 21 PHP
php实现的任意进制互转类分享
Jul 07 PHP
PHP实现会员账号单唯一登录的方法分析
Mar 07 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 smarty模版引擎中变量操作符及使用方法
2009/12/11 PHP
深入探讨PHP中的内存管理问题
2011/08/31 PHP
php实现图片上传并利用ImageMagick生成缩略图
2016/03/14 PHP
php简单实现短网址(短链)还原的方法(测试可用)
2016/05/09 PHP
js禁止document element对象选中文本实现代码
2013/03/21 Javascript
采用call方式实现js继承
2014/05/20 Javascript
JavaScript编程中容易出BUG的几点小知识
2015/01/31 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
2015/02/26 Javascript
JavaScript驾驭网页-获取网页元素
2016/03/24 Javascript
基于javascript实现图片滑动效果
2016/05/07 Javascript
jquery实现上传文件大小类型的验证例子(推荐)
2016/06/25 Javascript
JavaScript实现解析INI文件内容的方法
2016/11/17 Javascript
JavaScript中的普通函数和箭头函数的区别和用法详解
2017/03/21 Javascript
js+html制作简单日历的方法
2017/06/27 Javascript
使用jQuery实现页面定时弹出广告效果
2017/08/24 jQuery
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
实时监控input框,实现输入框与下拉框联动的实例
2018/01/23 Javascript
vue中$refs的用法及作用详解
2018/04/24 Javascript
jQuery实现的点击标题文字切换字体效果示例【测试可用】
2018/04/26 jQuery
微信小程序实现的动态设置导航栏标题功能示例
2019/01/31 Javascript
JS删除数组指定值常用方法详解
2020/06/04 Javascript
在SAE上部署Python的Django框架的一些问题汇总
2015/05/30 Python
Python卸载模块的方法汇总
2016/06/07 Python
Python的Flask框架中的Jinja2模板引擎学习教程
2016/06/30 Python
详细介绍pandas的DataFrame的append方法使用
2019/07/31 Python
python实现单张图像拼接与批量图片拼接
2020/03/23 Python
Python实现SMTP邮件发送
2020/06/16 Python
美国领先的汽车轮胎和轮毂供应商:TireBuyer
2016/07/21 全球购物
迪卡侬英国官网:Decathlon英国
2017/04/08 全球购物
Theo + George官方网站:都柏林时尚品牌
2019/04/08 全球购物
法雷奥SQA(electric)面试问题
2016/01/23 面试题
总经理职责
2013/12/22 职场文书
旅游个人求职信范文
2014/01/30 职场文书
视光学专业自荐信
2014/06/24 职场文书
2015年七一建党节演讲稿
2015/03/19 职场文书
2015年秋季运动会广播稿
2015/08/19 职场文书