Title

TP5集成QQ第三方登陆及SDK优化

  • 作者:Mr_Yan
  • php
  • 时间:2018-10-29 04:52:21
  • 331人已阅读

一、进入QQ互联创建应用,官网地址,https://connect.qq.com/  如果不知道怎么创建请自行百度

创建时需要注意的下事项

image.png


二、下载SDK 地址:https://cgi.connect.qq.com/v5/Website/Appinfo_App/getDownloadUrl?name=PHP_SDK_2.2

image.png

  1. 将class 文件全部移植到项目 extend 目录下,并重命名为qqlogin :qqlogin 文件名为自定义。

  2. 修改php文件名 去掉 其中的 .class .如下图

    image.png

三、优化SDK

  1. 给所有php文件添加命名空间 , 并将reuqire方式引入改为 use 引入 

    image.png



2.在application/extra 下创建配置文件

image.png



3.修改QQ SDK recorder.php  文件

image.png


4.修改验证CSRF攻击的方法,Oauth.php 下的qq_login()、 qq_calllback 方法,如下:

image.png

image.png


五、开始使用

  1. 前台点击事件JS


<a onclick="toQzoneLogin()" id="qqlogin"> <img src="/static/login/images/Connect_logo_5.png"></a>

var childWindow;
function toQzoneLogin()
{
   childWindow = window.open("{:url('login/qqlogin')}","TencentLogin");
   location.reload();
}
function closeChildWindow()
{
   childWindow.close();
}

2.后台处理

//请求权限 跳转第三方QQ登陆页面
public function  qqlogin(){
 
$oauth=new Oauth();
 
$oauth->qq_login();
}


3.回调处理   

public function qqcallback()
{
   
//实例化Oauth
   
$oauth=new QC();
   
$userinfo['accesstoken']=$oauth->qq_callback();
   
$userinfo['openid']=$oauth->get_openid();
   
cookie("userinfo",$userinfo); //存入Cookie
   
session('state',null);  //清空当前随机验证码
   //获取用户信息
   
$qc= new QC($userinfo['accesstoken'],$userinfo['openid']);
   
$userarr=$qc->get_user_info();
      //打印用户信息
     dump($userarr);
}

6.如何本地调试的话,需要配置站点域名,做DNS host解析 ,以win10下PHPstudy为例

image.png

至此全部结束,如果对你有帮助请点个赞吧!(*^_^*)

本文为MrYan原创文章,转载无需和我联系,但请注明来自MrYan个人博客:www.mryan888.com

文章评论

Top