php网站 qq登陆,PHP QQ一键登入网站实现过程
qq一键登入功能对于大多数小中型网站来说是十分必要的,因为他给你的用户带来了极大的方便,但是想要集成网站的qq一键登入功能,你必须要一些编程基础,使网站和qq登入的应用之间进行一些必要的交互,下面我简单的介绍下具体的流程。
1.访问网址qq互联平台http://connect.qq.com,使用任意qq帐号登入
2.管理中心菜单中开始创建一个应用,以便你的网站和域名能够合法使用该功能。
3.选择创建网站应用,然后填写选项
如果没有什么问题,点击创建应用按钮即可提交,接下来你会看到你的提交进入未审核状态
得到提示:您还有1款未审核应用,尽快完善接入平台资料并提交上线申请,三个月内未上线会被平台清除,APPID被收回
现在就可以开始开发,等开发流程好了后,去申请审核,大约1-3天内即可正常使用了
访问网址http://wiki.connect.qq.com/
查看开发文档,重要内容如下
从文档中可以看到,首先放置“QQ登录”按钮,就是在你的网站放一个qq图标,但是需要有一个链接,你可以在你的网站建一个php文件,比如qqlogin.php,qq图标的链接是http://yourdoamin.com/qqlogin.php?c=login, 为什么要这样写,是为了一个页面处理多个请求,下面看下代码:
PHP文件:qqlogin.php
你的域名表示为:http://yourdoamin.com
switch ($_GET['a'])
{
case 'login';
$_SESSION['state']=time();
$url="https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=xxxxx&redirect_uri=http://www.yourdomain/qqlogin.php?a=callback&state=".$_SESSION['state']."&scope=get_user_info";
redirect($url, $delay =0,$js = false,$jsWrapped = true, $return = false);
break;
case 'callback';
$code=addslashes($_GET['code']);
$state=addslashes($_GET['state']);
//防止xss跨站攻击
if(($code=='') or ($state<>$_SESSION['state']))
{
exit('err,please back');
}
$url='https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id=xxxxx&client_secret=xxxxx&code='.$code.'&redirect_uri=http://www.yourdomain/qqlogin.php?a=callback';
//redirect($url, $delay =0,$js = false,$jsWrapped = true, $return = false);
$access_token=vita_get_url_content($url);
if ($access_token)
{
$url='https://graph.qq.com/oauth2.0/me?'.$access_token;
$callback=vita_get_url_content($url);
if ($callback)
{
$content=str_replace('callback(',"",$callback);
$content=str_replace(');',"",$content);
$content=json_decode($content);
$client_id=$content->client_id;
//判断是否合法
if ($client_id=='xxxxx')
{
$openid=$content->openid;
//此处省略db操作,你可以使用$openid去你自己数据库查有没这个用户唯一标识,没有就去插入,如果需要用户昵称等资料可以调用接口https://graph.qq.com/user/get_user_info实现代码如下
$url="https://graph.qq.com/user/get_user_info?".$access_token."&oauth_consumer_key=xxxxx&openid=".$openid."";
$userinfo=vita_get_url_content($url);
$userinfo=json_decode($userinfo);
$nickname=$userinfo->nickname;
// 然后赋值session执行登入
redirect('http://www.yourdomain.com', $delay =0,$js = false,$jsWrapped = true, $return = false);exit;
}
}
}
exit('time out');
break;
default:
}
//自定义跳转函数
function redirect($url, $delay = 0, $js = false, $jsWrapped = true, $return = false)
{
$delay = (int)$delay;
if (!$js) {
if (headers_sent() || $delay > 0) {
echo'
';
exit;
} else {
header("Location:".$url."");
exit;
}
}
$out = '';
if ($jsWrapped) {
$out .= '
}
$url = rawurlencode($url);
if ($delay > 0) {
$out .= "window.setTimeOut(function () { document.location='{$url}'; }, {$delay});";
} else {
$out .= "document.location='{$url}';";
}
if ($jsWrapped) {
$out .= '
}
if ($return) {
return $out;
}
echo $out;
exit;
}
以下就是登入窗口,接口差不多了,是不是很简单
php网站 qq登陆,PHP QQ一键登入网站实现过程相关推荐
- 解决邮件客户端QQ Mail及Thunderbird无法登入Outlook的问题
最近无论是安卓手机的邮件客户端, 或者是 Ubuntu 下的 Thunderbird 都无法登入 Outlook 账号, 原因是需要开启双因素验证. 这个在 Outlook 界面上是不能直接设置的, ...
- Spring boot 使用QQ邮箱进行一个验证登入
Spring boot 使用QQ邮箱进行一个验证登入 QQ邮箱开启权限 在QQ邮箱设置->账户里面,往下拉找到这个开启,手机号验证成功后会有一串英文字符串是待会儿要用到的密码. prom.xml ...
- PHP登入网站抓取并且抓取数据
有时候需要登入网站,然后去抓取一些有用的信息,人工做的话,太累了.有的人可以很快的做到登入,但是需要在登入后再去访问其他页面始终都访问不了,因为他们没有带Cookie进去而被当做是两次会话.下面看看代 ...
- qq一键登入帝国cms插件|适用7.5 7.2版本|UTF-8 GBK双版本
简介: 帝国CMS啥插件都有,这款QQ登入插件,快快拿去用吧,非常方便,傻瓜式设置. 网盘下载地址: http://kekewangLuo.cc/81N8Y2qFUcd0 安装插件: 1.将" ...
- 实现QQ登陆(QQ互联)
更多干货 分布式实战(干货) spring cloud 实战(干货) mybatis 实战(干货) spring boot 实战(干货) React 入门实战(干货) 构建中小型互联网企业架构(干货) ...
- Android中集成QQ登陆和QQ空间分享
本文基于QQ open sdk V2.4.1. QQ登录应用有一个地方是需要注意的, QQ申请同一品牌应用(包括网站和app),需要相互依赖申请,因为在QQ互联中,一个应用对应一个app key,如果 ...
- android如何实现qq登陆和qq分享,2021超详细mob平台图解教程?
android如何使用mob平台实现QQ登录以及分享功能 1.在mob平台配置ShareSDK环境 1.如何在mob平台创建应用 2.获取你的`App Key`和`App Secret`(建议用自己的 ...
- 帝国cms插件支持7.0/7.2 7.5/UTF-8 微信登入插件 一键登入
简介: 这款微信登入插件,快快拿去用吧,非常方便,傻瓜式设置. 安装非常简单!新手也能懂! 网盘下载地址: http://kekewangLuo.cc/okQMSxm8a8m0 图片: 安装使用方法: ...
- c# webrequest 自动登入网站
这两天用c# 写了一个自动登入网页的小工具.使用的是发送webrequest的方式. 首先,使用抓包工具fiddler抓取登入页面时发送的request. 通过抓包工具,能够获取登入页面时发送的请求, ...
最新文章
- 记录navigator实现不同设备页面跳转
- my-medium.cnf_您的手机如何打开medium.com-我将让门卫和图书管理员解释。
- C++查漏补缺之浮点数内存表示
- 实验楼mysql实验-搭建一个简易的成绩管理系统的数据库
- Redis系列(二)-Hredis客户端设计及开源
- vs如何运行外部 C++ 文件
- keepalived实现LVS-DR模型的高可用
- 一个基于 EasyUI 的前台架构(4)主体页面框架收工
- 很全很强大的官方API集合
- 一起用Python做个车牌自动识别系统,好玩又实用!
- Axure8.1破解码 注册码 授权码
- 拼多多搬家上货助手怎么用?方法步骤有?
- 谷歌十年愚人节,「玩笑」背后是美好生活的企盼
- java课程设计 雍俊海_java课程设计模拟科学计算器【参考】.doc
- 海康威视监控下载下来的mp4格式的视频,小类别MPEG-PS格式
- 心电图ECG常用滤波器之陷波器
- fedora利用vmlinuz和initrd制作linux启动u盘,打造Fedora 14安装U盘
- 《操作系统》2022年期末A卷
- [ISUX译转]CSS3 transition规范的实际使用经验
- SAP SMARTFORMS文本内容手动换行输出