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 相关文章推荐
BBS(php &amp; mysql)完整版(二)
Oct 09 PHP
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
Mar 15 PHP
php使用curl发送json格式数据实例
Dec 17 PHP
php生成excel文件的简单方法
Feb 08 PHP
PHP5各个版本的新功能和新特性总结
Mar 16 PHP
php 伪静态之IIS篇
Jun 02 PHP
destoon实现调用热门关键字的方法
Jul 15 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
Nov 14 PHP
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
Mar 03 PHP
PHP实现的简单分页类及用法示例
May 06 PHP
基于php实现的验证码小程序
Dec 13 PHP
PHP实现活动人选抽奖功能
Apr 19 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
给WordPress的编辑后台添加提示框的代码实例分享
2015/12/25 PHP
Yii框架中jquery表单验证插件用法示例
2016/10/18 PHP
文本框中,回车键触发事件的js代码[多浏览器兼容]
2010/06/07 Javascript
jquery下实现overlay遮罩层代码
2010/08/25 Javascript
Javascript异步编程的4种方法让你写出更出色的程序
2013/01/17 Javascript
select标签模拟/美化方法采用JS外挂式插件
2013/04/01 Javascript
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
jquery简单实现鼠标经过导航条改变背景图
2013/12/17 Javascript
javascript实现存储hmtl字符串示例
2014/04/25 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
node.js中的fs.unlinkSync方法使用说明
2014/12/15 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
AngularJS入门教程之Cookies读写操作示例
2016/11/02 Javascript
vue实现列表的添加点击
2016/12/29 Javascript
vue实现ajax滚动下拉加载,同时具有loading效果(推荐)
2017/01/11 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
JavaScript字符串_动力节点Java学院整理
2017/06/27 Javascript
详谈js对url进行编码和解码(三种方式的区别)
2017/08/16 Javascript
jquery的 filter()方法使用教程
2018/03/22 jQuery
不使用JavaScript实现菜单的打开和关闭效果demo
2018/05/01 Javascript
js正则表达式校验指定字符串的方法
2018/07/23 Javascript
在create-react-app中使用css modules的示例代码
2018/07/31 Javascript
Vuex实现数据增加和删除功能
2019/11/11 Javascript
js实现炫酷光感效果
2020/09/05 Javascript
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
2018/09/19 Python
python自动化生成IOS的图标
2018/11/13 Python
Django框架登录加上验证码校验实现验证功能示例
2019/05/23 Python
改变 Python 中线程执行顺序的方法
2020/09/24 Python
股权转让协议书
2014/04/12 职场文书
个人合作协议书范本
2014/04/18 职场文书
六一儿童节演讲稿
2014/05/23 职场文书
离婚协议书怎么写
2014/09/12 职场文书
岗位职责范本大全
2015/02/26 职场文书
vue.js Router中嵌套路由的实用示例
2021/06/27 Vue.js
2021好看的国漫排行榜前十名 《完美世界》上榜,《元龙》排名第一
2022/03/18 国漫
Golang 结构体数据集合
2022/04/22 Golang