PHP QQ网页三方登录

一、在QQ互联上注册成为开发者
注册指南地址: http://wiki.connect.qq.com/%E6%88%90%E4%B8%BA%E5%BC%80%E5%8F%91%E8%80%85

二、创建应用,获取APP ID和APP Key
创建应用指南地址:http://wiki.connect.qq.com/__trashed-2
1、进入QQ互联后台创建网站应用
https://connect.qq.com/manage.html#/

2、网站基本信息
此处主要填写网站名字、选择网站类别、网站简介、以及上传网站的log图片

3、平台信息
网站地址:请填写可访问的域名,不能是IP地址
网站回调域:请填写可访问的域名,不能是IP地址
主办单位以及网站备案号

注:请注意网站回调域,这个地址需要对应到后面SDK配置回调地址的域匹配

三、下载对应SDK
我这里使用PHP SDK,下载地址: http://wiki.connect.qq.com/sdk%E4%B8%8B%E8%BD%BD

下载完SDK,需要使用SDK提供的网页配置参数,如下截图说明:


假设APP ID:123456789
假设APP Key:abcdefghl
假设第二步中申请的网站回调域为 www.testqqlogin.com,
那么回调可以设置为:http://www.testqqlogin.com/?r=member/qqcallback
ps:
1、重点关注第二步中回调域的设置,需要设置为域名形式,如www.xxx.com,test.yyy.com等,而非www.aaaa.com/test.php
2、同样,重点关注SDK配置回调设置,前面域名必须和QQ互联回调域设置一致,比如:
假如回调域设置为:www.testqqlogin.com
那么SDK回调必须设置为 http://www.testqqlogin.com/oauth/callback.php 或者 http://www.testqqlogin.com/?r=member/qqcallback

但是,不能把SDK回调域设置为以下
http://www.testqqlogin.com/index.php?r=member/qqcallback

当完成以上配置之后,它会自动在SDK目录下的API\comm生成一个名为inc.php的配置文件,开发人员只需要把SDK中的API这个目录提取到自己的项目中即可


四、代码配置

4.1、前端网页QQ三方登录按钮(按钮ID为login_qq)事件配置

<script>$(document).ready(function () {$('#login_qq').click(function () {window.location.href = "<?=\yii\helpers\Url::to(['member/qqlogin'])?>";
//                window.open("<?//=\yii\helpers\Url::to(['member/qqlogin'])?>//","TencentLogin","width=800,height=600,menubar=0,scrollbars=1,resizable=1,status=1,titlebar=0,toolbar=0,location=1");});});</script>

4.2、PHP后端处理代码,处理前端QQ三方登录按钮

/*** 跳转QQ登录页面*/
public function actionQqlogin(){require_once ("../vendor/qqlogin/qqConnectAPI.php");$qc = new \QC();$qc->qq_login();
}

4.3、QQ登录成功,回调

/*** 处理QQ登录之后QQ服务器的回调callback*/
public function actionQqcallback(){require_once ('../vendor/qqlogin/qqConnectAPI.php');//获取登录QQ的信息$auth = new \OAuth();$access_token = $auth->qq_callback();$openid = $auth->get_openid();$qc = new \QC($access_token, $openid);$userInfo = $qc->get_user_info();//获取用户信息数组,包括昵称,头像等//写session$session = \Yii::$app->session;$session['userinfo'] = $userInfo;$session['openid'] = $openid;//QQ登录前,判断QQ对应用户是否已经在数据库中,否则先插入数据库,并跳到actionQqreg这个函数执行$model = new User();if(!$model->findQqUser($openid)){//没找到,先注册return $this->redirect(['member/qqreg']);}//QQ登录if($model->qqlogin()){return $this->redirect(['/']);}else{\Yii::$app->session->setFlash('thirdparty_info', '登录失败');return $this->render('auth',['model'=>$model]);}
}

4.4、处理回调中的QQ第一次登录,需要写入数据库

/*** QQ注册,写入数据库*/
public function actionQqreg(){$this->layout = 'layout_second';$model = new User();if(\Yii::$app->request->isPost){$model->scenario = User::SCENARIO_REG_QQ;//组装$post = \Yii::$app->request->post();$post['User']['openid'] = \Yii::$app->session['openid'];if($model->load($post) && $model->validate()){//QQ用户添加if($model->regQqUser() !== false){//QQ登录if($model->qqlogin()){return $this->redirect(['/']);}else{\Yii::$app->session->setFlash('info', '注册失败');}}else{\Yii::$app->session->setFlash('info', '注册失败');}$model->userpass = '';$model->useremail = '';$model->repass = '';}}return $this->render('qqreg', ['model'=>$model]);
}

五、问题

5.1、点击qq登录按钮,但页面却是一片空白,这是什么原因呢

这是QQ插件的问题,需要调整其SDK源码qq_login函数,把header改为js方式跳转,如下

//header("Location:$login_url");
echo "<script>window.location.href='$login_url'</script>";

六、总结

PHP集成QQ网页登录功能,整体上都很简单。主要花费的时间在回调域和回调地址设置上,这导致我花了很长时间去调整,这和之前集成支付宝支付很类似,同样在回调地址的设置出错,导致整体集成进度延后。这也是我为什么在第三步中详细描述设置的原因,希望能帮助到集成QQ网页登录的同学微笑





本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/143704.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

卡西欧计算机亮度,卡西欧手表灯光怎么调 卡西欧手表灯光亮度可以调吗

卡西欧手表的照明灯光其实还蛮方便的&#xff0c;在一些比较黑的地方&#xff0c;用起来是很好用的&#xff0c;不过很多人刚拿到手可能还不太会用&#xff0c;下面一起来看看卡西欧手表灯光怎么调吧。 卡西欧手表灯光怎么调 卡西欧手表的灯光点亮时间可以通过左上角的按键来进…

【工具】我的键盘(机械键盘)快捷键设置

文章目录 1. 我的键盘自定义的设置&#xff1a;1.1 最近常用的快捷键设置 2. 我的键盘的说明书截图如下&#xff08;共三页&#xff09;&#xff1a;3. POKER3R 的按键编程截图4. 链接5. 有用请点赞&#xff0c;谢谢&#xff01;1. 点赞&#xff0c;积分12. 评论&#xff0c;积…

机械键盘轴的小知识详解

近年来无论是玩游戏还是办公&#xff0c;现在越来越多的人选择使用机械键盘&#xff0c;特别是对于游戏玩家来说&#xff0c;机械键盘已经成为标配。对于不太了解机械键盘的朋友来说&#xff0c;可能第一次听说机械键盘轴这个东西。那么&#xff0c;机械键盘轴的区别是什么?如…

Java实现复制文件(文件、文件夹)

Java复制文件主要是File工具类中listFiles()方法先列出文件夹中的文件, 然后使用BufferedInputStream缓冲输入流接收要复制的文件, 再用BufferedOutputStream缓冲输出流的write()方法写入文件 先新建一个复制文件类, 这边使用递归的方法来复制文件 复制文件夹: /*** 复制文件夹…

系统封装制作

工具网址&#xff1a; 镜像下载&#xff1a; Windows 10 22H2 - MSDN - 山己几子木 (sjjzm.com)pe工具&#xff1a;【新提醒】优启通 v3.7.2022.0910&#xff08;2022.10.14 发布&#xff09;_IT天空原创软件_IT天空 (itsk.com)万能驱动&#xff1a;万能驱动 v7.22.0912.2&…

最新WIN10系统封装教程2019系列(三)——必要的系统调整

本教程共有8个系列 1. 定制母盘2. 虚拟机与母盘安装 3. 必要的系统调整 4. 手动优化5. 使用工具优化与清理6. 常规软件安装7. 封装8. 测试效果 母盘安装后我们需要进行必要的系统调整&#xff0c;以便让接下来的封装工作开展的更顺畅。比如文件交换&#xff0c;需要提前把封…

Windows镜像封装

一、首先设置网卡属性为DHCP 操作环境 通过云服务器或者外部镜像文件创建私有镜像时&#xff0c;如果云服务器或镜像文件所在虚拟机的网络配置是静态IP地址时&#xff0c;您需要修改网卡属性为DHCP&#xff0c;以使私有镜像发放的新云服务器可以动态获取IP地址。 说明&#x…

独自封装windows 10系统详细教程(二)

目录 作者语录&#xff1a; 三、调整系统设置 1、切换管理员账号 2、添加英文输入法 3、关闭windows自动更新 4、取消任务视图的历史记录 四、个性化设置&#xff08;选择&#xff09; 1、调整视觉效果 2、windows桌面壁纸/登录壁纸 3、OEM信息 作者语录&#xff1a; 这…

封装自己专属的真正的纯净版Windows系统过程记录(4)——进行封装

文章目录 工具准备封装第一阶段ES5S封装第二阶段前的调整ES5S封装第二阶段设置提前测试部署并进入桌面检查经过以上检查&#xff0c;没有问题&#xff0c;最终打包保存系统镜像文件恢复到最后一次快照&#xff0c;然后进入PE 按照下图步骤将C盘目标系统盘备份成WIM镜像文件即可…

windows系统封装

工具 vmware workstation15优启通 v3.6Easy Sysprep v5&#xff08;ES5&#xff09; 首先新建一个虚拟机&#xff0c;修改下虚拟机硬件配置&#xff0c;去掉无用硬件&#xff0c;添加一个光驱 光驱放入镜像&#xff0c;光驱1放入优启通PE的镜像&#xff0c;光驱2放入win10系…

2 files found with path ‘lib/arm64-v8a/libwechatbacktrace.so‘ from inputs

2 files found with path lib/arm64-v8a/libwechatbacktrace.so from inputs 解决方案&#xff0c;在app module的build.gradle里面的 android { } 块里面添加&#xff1a; packagingOptions {exclude lib/arm64-v8a/libwechatbacktrace.so} 如果有多个&#xff0c;就再增加行…

adc去质器什么意思_LOL:“ADC去质器”成为了赏金猎人的神器

都知道最近LOL更新了一次大的版本&#xff0c;不光是上线了一个全新的自带抢人头BUFF的辅助&#xff0c;还上线了很多备受期待的新装备。而其中“岚切”这件装备&#xff0c;在未上线之前就一直备受玩家的关注&#xff0c;因为从测试服曝光数据以来&#xff0c;这件装备似乎就成…

ADC工作原理及应用

逐次逼近型 离散化 自然界的模型信号一般都是连续的

adc去质器什么意思_LOL:这三个英雄就是“ADC去质器”,尤其第3个

搞笑的玩家无处不在&#xff0c;搞笑的游戏也是层出不穷&#xff0c;沙漠雕哥为大家寻找游戏中的搞笑玩家行为&#xff0c;以及搞笑的游戏作品。 英雄联盟在中国发展了8年&#xff0c;出了很多新鲜的玩法&#xff0c;也推出了很多新鲜的英雄&#xff0c;在刺客这方面也出了很多…

adc去质器什么意思_ADC后期伤害爆炸?这几个英雄轻松制裁,ADC去质器了解一下...

英雄联盟经过了多个版本的修改&#xff0c;现在版本可谓是刺客英雄的天下&#xff0c;对ADC这种前期弱势的英雄可不太友好。虽然A DC前期比较弱势&#xff0c;但后期的ADC伤害非常爆炸&#xff0c;团战更是威胁最大的英雄。后期ADC伤害爆炸&#xff0c;选择几个英雄能够让ADC瞬…

PYTHON爬取斗鱼英雄联盟所有在玩adc的主播房间信息

Python爬取斗鱼英雄联盟所有玩adc的主播房间信息并用redis存储数据 最近想要用巩固下json数据的提取以及数据的存储&#xff0c;于是选了斗鱼作为研究对象。。 下面就是所有要爬取的adc&#xff0c;当然有个别adc没人玩就不爬不了。 首先观察下虚空之女和赏金猎人这两个英雄的…

photoshopcs6安装包

网上找这个特别麻烦&#xff0c;好多限制&#xff0c;而且你还不一定能装上。我分享个精简版的&#xff0c;实用性强 百度网盘地址&#xff1a; https://pan.baidu.com/s/1vzTHIK8fZg9RamdcikbdSw 提取码&#xff1a;k7d8

Adobe Premiere Pro cs6 精简版 0xc000007b 应用程序无法正常启动

失败方法记录 法1、把Adobe PS CS6 目录.dll文件拷贝&#xff0c;粘贴到Adobe Premiere CS6目录下 信息不对称&#xff0c;失败 法2、下载驱动人生等安装组件 看来驱动人生没有发现倪端&#xff0c;失败&#xff01; 法3、修改环境变量&#xff1f; 别说了&#xff0c;失败 正…

Photoshop CS5软件安装教程

Photoshop CS5&#xff08;32/64位&#xff09;精简版下载地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/11T-L-aH3JNXlJmSqL0JY6Q 提取码&#xff1a;ea5j Photoshop主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具&#xff0c;可以有效地进行图…

ps进阶

若想探究ps更炫酷的技能&#xff0c;请往下读吧。 文章目录 一、滤镜安装及Camera Raw使用二、笔刷安装三、快速制作GTA风格的画报四、3D建模 一、滤镜安装及Camera Raw使用 Adobe Camera Raw是一款编辑RAW文件编辑的强大工具。raw是单反数码相机所生成的RAW格式文件。安装上…