php 网页qq一键登录,给网站添加一键qq登录的功能
qq互联官网文档地址:
基本流程:
在qq互联官网申请开发者,审核通过后创建网站应用,网站应用审核通过后会有app id 和 app key 然后所有qq账号的数据都是通过这两个去获取。
都是封装好的函数,直接调用就可以实现各种功能了。
一键登录代码://先放置一键登录qq图片,和打开qq登录界面oa授权地址,参数回调地址
οnclick="javascript:window.open('
client_id=appID&redirect_uri=
state=65c747f767&scope=get_user_info','_self')" width="150">
//QQ回调地址代码:
ini_set('display_errors','on');
include_once( '../../config.php' );//引入qqDemo配置文件
//qq api开始
$code = $_GET['code'];
$state = $_GET['state'];//接收来自点击一键登录按钮后传过来的参数
if(empty($code)||empty($state)){
echo '';
exit;
}else{
//通过code和state的参数获取token
$token = file_get_contents("https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id
=12345&client_secret=1e29c4cd120e&code=".$code."&redirect_uri="
.urlencode('http://www.zixuephp.net/qq/index.php'));
$token_arr = explode('&',$token);
$token0 = explode('=',$token_arr[0]);
if($token0){
//通过token获取qq的唯一openid,token有生存时间
$token0 = $token0[1];
$openid = file_get_contents("https://graph.qq.com/oauth2.0/me?access_token=".$token0);
$id = explode('"',$openid);
$ids = $id[7];
//通过openid获取qq用户信息
$get_info = file_get_contents("https://graph.qq.com/user/get_user_info?oauth_consumer_key=
12345&access_token={$token0}&openid={$ids}&format=json");
$userinfo = json_decode($get_info);
$userinfo = (array)$userinfo;
$uid = $ids;
$name = $userinfo['nickname'];
$head = $userinfo['figureurl_qq_2'];
//通过查询保存数据库的openid判断用户之前有没有登录过
$res = $dbh->query("select * from user where other_id='qq_{$uid}'");
$u = $res ->fetch();
if($u){
session_write_close();
session_start();
$_SESSION['account']=$u['account'];
$_SESSION['uid']=$u[0];
header("Location:iphp.php");
exit;
}
?>
//如果是第一次登录则进行数据保存到数据库
html>
QQ一键登录
----------QQ一键登陆授权成功,信息设置----------
邮箱设置
密码设置
" />
" />
" />
$('#set').click(function(){
var email = $('input[name=account]').val();
var pw = $('input[name=passwd]').val();
var ou_id = $('input[name=ou_id]').val();
var sname = $('input[name=sname]').val();
var head = $('input[name=head]').val();
$.ajax({
type:'post',
url:'reg_process.php',
data:{
'email':email,
'pw':pw,
'ou_id':ou_id,
'sname':sname,
'head':head
},
success:function(data){
if(data=='登陆成功!'){
$('.logintips span').text('登陆成功!3s后自动关闭窗口...');
setTimeout(function(){
window.close();
},3000);
}else{
$('.logintips span').text(data);
}
},error:function(){
$('.logintips span').text('请求出错!');
}
});
});
}else{
echo '';
exit;
}
}
?>
QQ登录的优点,通过“QQ登录”,用户能使用QQ帐号一键登录接入网站,大大降低了用户注册、登录的门槛,借助庞大的QQ用户群,给第三方网站带来更多新用户。
已登录用户还可以将在第三方网站发布、分享的信息即时同步到QQ空间,使网站内容通过好友关系得到进一步的传播,从而提升网站的访问量和用户数。
来源:QQ互联
php 网页qq一键登录,给网站添加一键qq登录的功能相关推荐
- 抖音最近很火的QQ在线价值评估网站源码(qq价值在线评估)
抖音最近很火的QQ在线价值评估网站源码(qq价值在线评估) QQ在线价值评估源码,这个源码是很多年以前的了,最近又在抖音刷到别人直播需要刷礼物才能给你评测,所以又找了一下测试了可用,将源码上传后解压, ...
- python实现qq登录_Django网站实现第三方QQ登录
今天搞好了博客搁置已久的登录功能,目前仅支持第三方登录,这样有效减少了恶意的批量注册,我先来说下第三方登录的原理: 这里以QQ为例 首先,在QQ互联注册开发者并申请自己的博客应用(网上教程大把,这里不 ...
- QQ在线客户服务,网站的联系QQ
QQ在线客服 <a target="blank" href="http://wpa.qq.com/msgrd?V=1&Uin=861259610&S ...
- 运用Share.js插件在网页上添加一键分享到微博、微信等
最近做项目遇到一个需求,就是给网站添加一键分享到微博,微信,qq等社交媒体的功能. 想来应该是通过调用一些现成的接口就可以了,这里总结一下运用Share,js来实现的详细步骤 具体做法: 1.下载gi ...
- 个人网站如何集成QQ快捷登录功能?
目录 一.网站集成QQ快捷登录的好处 二.网站接入QQ快捷登录具体步骤 (1)登录到QQ互联官网 (2)进行个人开发者认证 (3)创建网站应用 (4)填写网站资料 三.如何在本地开发环境下进行测试? ...
- 第10课:利用Headers 的 cookie,实现爬取需要登录的网站信息
本节课目录: Cookie 的概念: 网站 Cookie 的获取方法 : Cookie 访问登录网站演示: 实战演习: Cookie 安全: 本节课总结: Cookie 的概念: Cookie 是储存 ...
- 给你的网站添加访问统计和事件统计
关键词:网站统计:访问统计:事件统计:流量统计 我们在浏览一些网页的时候,总是能发现在网页的最下端,有一个类似酱紫的东西.这个是在对对应的网站进行着相关的数据统计,比如当前在线人数,每日访问量等等. ...
- 查看windows登陆日志_如何在Windows登录屏幕上查看以前的登录信息
查看windows登陆日志 By default, most versions of Windows record an event every time a user tries to log on ...
- 浏览器登录_经常用浏览器自动登录忘记了密码?教你一键查看网页星号密码
不知道大家有没有出现这种情况,因为一直用的网页自动填写密码来登录,所以有时候甚至把密码给忘了 相信有的小伙伴有可能就会出现这种情况哈,今天小林君来教你个超简单的方法,不用安装任何软件,就可以一键查看网 ...
- flutter在IOS上的登录实现——QQ登录、微信登录、自动识别手机号一键登录、apple登录
flutter在IOS上的登录实现--QQ登录.微信登录.自动识别手机号一键登录.apple登录 一.QQ登录 使用的第三方库: 具体操作方法: 1.配置 Universal Links 2.QQ互联 ...
最新文章
- 渔民之友:Google X 新项目,用计算机视觉养鱼
- linux 隧道服务器,两台linux服务器上建立ip隧道 | 菜鸟博客
- vtigercrm安装
- 实战并发编程 - 08基于Guarded Suspension模式优化轮询while(true)
- halcon知识:圆度和紧凑度
- java sync和async区别_GCD中串行、并行与async、sync的区别
- Go聊天室的思路:一个拨号 一个监听
- nodejs搭配phantomjs highcharts后台生成图表
- 10月31日随笔 成人礼
- Base64编码简介及在java中的使用
- 网络存储空间_网络存储服务器的三大分类,你都清楚吗?
- @Scheduled不执行的原因
- android emulator虚拟设备之qemu pipe分析(三)
- nginx 做代理转发 对文件上传下载有影响速度吗_少年: Nginx了解下
- jQuery源码结构
- 计算机网络的创新创业计划书,互联网创新创业计划书.doc
- TCP/UDP的区别
- 【解决方案 六】---在VS2015里使用ILDasm
- 2012服务器优化工具,Windows server 2012服务器安全加固与web环境配置优化
- 必得沾福气卡两张,可沾花花卡、敬业福。(扫福攻略、扫福技巧)