<h5 style="color:green">现在越来越多的网站都实现了QQ快捷登录功能,下面小编就教大家怎么实现:</h5>
[TOC]
一、申请接口
二、代码实现
**一、申请接口:**
QQ登录需要使用[QQ互联](https://connect.qq.com/)。使用开发QQ登录:
![](https://box.kancloud.cn/e3e6101d30da866060210f48f35c5fd8_1113x727.png)
点击菜单上的 “应用管理”:
![](https://box.kancloud.cn/ca7c2eabc8adc081a8dd067a0df7e3f4_1071x562.png)
点击“创建应用” 选择 “创建网站应用”:
![](https://box.kancloud.cn/afe747a212827b97ca033daac967764a_1006x526.png)
填写相关信息创建,提交,审核。(网站名称和回调地址一定要写对,且网站能正常访问)
![](https://box.kancloud.cn/6e2b39b46fd68ccf5f4826dab4bd589d_1009x460.png)
回到地址可以填写多个,以后也可以修改
![](https://box.kancloud.cn/d3b7a439a405a524b42efe59196e3216_864x278.png)
**二、代码实现**
1.实现类库:链接: [QQ登录类库](https://pan.baidu.com/s/1kVI66fd)<br>
链接: https://pan.baidu.com/s/1kVI66fd 密码: 5rcz
2.登录方法:
~~~
/**
* QQ登录访问页
*/
function actionQqlogin(){
$http_referer = $_SERVER['HTTP_REFERER'];
$loginurl = "http://" . $_SERVER['HTTP_HOST'] . "/user/user/login";
if($http_referer==$loginurl){
$http_referer = url('default/index');
}
$_SESSION['HTTP_REFERER'] = $http_referer;
Helper_Qqlogin::qq_login();
}
~~~
3.回调方法:(回调方法在申请接口的时候填写的)
~~~
/**
* QQ登录回调
*/
function actionQqcallback(){
$get_user_info = Helper_Qqlogin::get_user_info();
$user = User::find("qq_openid='" . $get_user_info['qq_openid'] . "'")->getOne();
if($user->uid>0){//如果登录过
$url = helper_session::get("HTTP_REFERER");
helper_session::set('HTTP_REFERER', null);
if ($user->status == 1) {
// 将登录用户的信息存入SESSION,以便应用程序记住用户的登录状态
$this->_app->changeCurrentUser($user->aclData(), Helper_Array::toHashMap($user->roles, 'id', 'id'));
$user->last_ip = IP;
$user->last_time = CURRENT_TIMESTAMP;
$user->save();
}else{
//如账号被禁用页面跳转
$this->_redirectMsg("操作错误", "账号{$user->username}已经被禁用,请联系管理员", $url,0,5);exit;
}
}else{//如果第一次登录,跳到注册页面
helper_session::set('qq_openid',$get_user_info['qq_openid']);//设置session
helper_session::set('qq_user_info',$get_user_info);//设置session
$url = url("user::user/qqtel");
}
header("Location:$url");
}
~~~
4.到这里已经获取到用户QQ的openid即qq_openid。拿到这个信息就可以进行业务逻辑操作了。接下来就根据你的网站判断需求进行即可。
<h5 style="color:green">有不懂的问题请下方留言,代码中有的部分是我自己的逻辑,请根据需要自行修改</h5>
- 前言
- 软件流程
- 快速体验
- 需求分析
- 系统设计
- 数据库设计
- 框架搭建
- 前端开发
- HTML
- CSS
- JavaScript
- Jquery
- 服务端开发
- PHP入门
- PHP开发环境搭建
- PHP基础
- PHP字符串String
- PHP数组Array
- PHP时间Date
- PHP面向对象
- PHP函数封装
- PHP类库
- PHP-MYSQL
- 系统测试
- 开发测试
- 单元测试
- 集成测试
- 系统测试
- 部署上线
- 环境部署
- 权限设置
- 网站配置
- 上线运营
- 系统维护
- 前端技术点
- HTML
- HTML5结构
- CSS
- CSS3实现鼠标移动到图片上图片变大
- 微信开发
- 公众号区别
- 微信支付接口
- 扩展:API
- 1.网站QQ登录的实现
- 2.网站微信扫描登录的实现
- 扩展:插件
- H5上传插件
- H5文件上传插件
- 扩展:函数
- 1.数组转数
- 2.移除数组空元素
- 3.返回数组中指定键的值
- 4.数组按照指定字段的值分组
- 5.网页无图片或者图片不存在自动显示默认图
- 6.返回客户端IP地址
- 7.当数据不显示为空的时候显示默认值
- 扩展:类库【面向对象】
- 类的定义和使用
- 扩展:Mysql
- mysql基础
- 扩展:Linux
- Linux常用命令
- Linux创建svn
- ThinkPHP5专栏
- TP5专栏解读
- 教你怎么使用TP5
- 问题解决篇
- 网页直接打开PDF或强制下载以及header和content-type参数详解
- 让PHP去执行svn命令踩过的坑
- 微信开发 支付开发redirect_uri参数错误解决办法
- 全栈开发实例一
- 1.需求分析
- 2.系统设计
- 3.数据库设计
- 4.框架搭建
- 5.模块设计
- 6.前端开发
- 7.这里小编就不更新了,太累人,直接上源码给你们吧
- 结语
- 【新】github和packagist上的资源