html5qq授权登陆,php 第三方登陆接入qq互联
1.在页面中准备一个跳转qq互联授权登陆页面的a标签或者在控制器中跳转/**
* 跳转登陆页面
*
* @return \think\response\Redirect
*/
public function index()
{
$my_url = 'http://www.kutucn.com/api';
$SESSION = md5((string)rand());
Session::set('state', $SESSION);
return redirect("https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=" . $this->appid . "&redirect_uri=" . urlencode($my_url) . "&state=" . $SESSION);
}
注释:
my-url 为你qq互联上面填写的回调域名
id 跟key为qq互联应用的参数
2.获取token/**
* 获取access_token
*
* @param $code
* @return array|false|string
*/
private function getToken($code)
{
function convertUrlQuery($query)
{
$queryParts = explode('&', $query);
$params = array();
foreach ($queryParts as $param) {
$item = explode('=', $param);
$params[$item[0]] = $item[1];
}
return $params;
}
$client_id = $this->client_id; // APPID
$client_secret = $this->client_secret; // APPSECRET
$url = urlencode('http://www.kutucn.com/api'); // 授权回调域
$data = file_get_contents("https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id=$client_id&client_secret=$client_secret&code=$code&redirect_uri=$url");
$data = convertUrlQuery($data);
return $data;
}
3. 用token换取openid 再获取用户info信息 再加上自己网站的登陆逻辑/**
* 获取token 网站登陆逻辑
*
* @param Request $request
* @param $code
* @param $state
* @return \think\response\Json|\think\response\Redirect
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @Route("", method="GET")
*/
public function index(Request $request, $code, $state)
{
$client_id = $this->client_id;
$client_secret = $this->client_secret;
// 获取第一步的token
$data = $this->getToken($code);
$access_token = $data['access_token'];
$refresh_token = $data['refresh_token'];
// 获取30天期限的token
$result = file_get_contents("https://graph.qq.com/oauth2.0/me?access_token=$access_token");
$result = explode('(', $result);
$result = explode(')', $result[1])[0];
$result = json_decode($result, true);
if (key_exists('error', $result)) {
return $this->callJson($result, 2, '登陆失败');
} else {
// 获取用户信息
$openid = $result['openid'];
$info = file_get_contents("https://graph.qq.com/user/get_user_info?access_token=$access_token&oauth_consumer_key=$client_id&openid=$openid");
$info = json_decode($info, true);
$inset = [
'headerimg' => $info['figureurl_qq'],
'province' => 0,
'city' => 0,
'county' => 0,
'address' => '',
'nickname' => $info['nickname'],
'openid' => $openid,
'sex' => $info['gender'],
'create_time' => time(),
'is_auth' => 1,
'update_time' => time(),
'unionid' => 0,
'token' => $data['access_token'],
'auth' => 0,
'email' => '',
'phone' => 0,
'desc'=> '',
]; // 建立一个存储登陆信息的数组,以便存入用户数据表
}
$url = Cookie::get('url'); // 获取前端页面存储的登陆前页面url
if (empty($url)) {
return redirect($url);// 前端页面 写一个公共的js 用cookie存储当前的页面url,以便返回登陆前的页面
} else {
return redirect($_SERVER["REQUEST_SCHEME"] . '://' . $_SERVER['HTTP_HOST']); // 如果cookie不存在就返回主页
}
}
以上 qq登陆完成,测试可正常使用。
html5qq授权登陆,php 第三方登陆接入qq互联相关推荐
- springSecurity的学习笔记--使用spring-Security完成表单登陆,手机验证码登陆,第三方登陆
环境搭建好后,之后的练习进入了一个十分痛苦的阶段!! 但是与此同时,收获也是比较可观的. 老师通过详细的视频讲解,完成了表单登陆,包括账号密码和验证码登陆,手机验证码登陆,第三方登陆. 每一个部分都进 ...
- 网站接入QQ互联(JAVA版)
简介: QQ互联是腾讯旗下的开放平台,通过QQ互联,网站主和开发者可以申请接入QQ登录.用户可以使用QQ账号登录接入的站点,通过添加分享和赞组件,将站点内容分享到QQ空间和朋友网,通过获取API授权, ...
- qq互联登录授权php配置,php如何整合qq互联登录
相关推荐:<PHP培训> php整合qq互联登录 接入QQ互联平台后,我们就可以让用户通过QQ帐号登录来登陆我们的网站,这样减少了注册的繁琐,可以更快 .更便捷的为了我带来更多的用户,下面 ...
- 第三方登录接入-qq,weibo-java
开发之前 需求:网站接入qq,sina微博登录,本文最后付效果图: 说明:大部分网站本身是需要用户概念的,很多操作依附于用户,而qq或微博作为一种登录方式指向用户而已,我参考了一下其他网站的做法, 一 ...
- java第三方登录接口_第三方登录接入-qq,weibo-java
开发之前 需求:网站接入qq,sina微博登录,本文最后付效果图: 说明:大部分网站本身是需要用户概念的,很多操作依附于用户,而qq或微博作为一种登录方式指向用户而已,我参考了一下其他网站的做法, 一 ...
- 接入QQ互联(QQ登录)时,$_REQUEST['state'] == $_SESSION['state'] CSRF验证失败,原因是访问域名和回调域名不一致(虽然两个域名绑定的是同一个服务器的项目)
昨天晚上在调试接入QQ登录的时候,感觉一切文件路径以及配置参数都没什么问题了,准备在线上测试的时候,却一直无法登录成功,返回的错误码100007,错误提示是:The state does not ma ...
- QQ登陆第三方Demo(QQ互联)
项目需要做QQ.微博等登陆第三方的功能,第一次接触,虽然官网上有sdk,接口写的很好,调用即可,但是没有文档,看着头疼就自己写了 步骤不多说: 一.申请AppID和AppKey,申请地址:点击打开链接 ...
- qq扫码认证登录php,PHP实现第四方QQ微信扫码登陆,不接入qq互联以及微信开发者平台...
[PHP] 纯文本查看 复制代码<?php class Curl_Api { public $ua = "Mozilla/5.0 (Windows NT 10.0; WOW64) Ap ...
- 个人博客系统开发总结之 第三方登录(QQ、微博)
当别人访问我的博客系统时,如果需要评论,就需要登录.如果此时要求注册,就比较麻烦,并且会引起访问者的反感.于是就采用第三方登录.目前支持QQ.微博登录. QQ登录 QQ互联开放平台为第三方网站提供了丰 ...
- Oauth2.0 QQ微信微博实现第三方登陆
一.写在前面 目前对于大多数的App或Web网站都支持有第三方登陆这个功能,用户可使用 QQ/ 微信/ 微博 帐号快速登录你的网站,降低注册门槛,为你的网站带来海量新用户.最近在新项目上刚好用到了,在 ...
最新文章
- Linux下ssh登录速度慢的解决办法
- 图灵测试70载,回顾对话机器人的经典实践和最新进展
- matlab能做深度图像的识别吗,Matlab图像识别/检索系列(6)-10行代码完成深度学习网络之基于CNN的图像分类...
- Qt Creator添加Qt版本
- 【水】uva10037 过桥
- 5分绩点转4分_高考语文如何考上120分?衡中老师建议:这5点高中生必须重视
- erlang的epmd指定端口范围验证及端口权限配置
- Java8 中通过 Stream 对列表进行去重的几种方法
- .net WebApi 批量文件进行压缩zip以二进制流传输至前端(Vue)下载
- CSS 布局 - Overflow
- js 開始时间,当前时间,结束时间的比較
- excel表格打印每页都有表头_分享|1分钟学会,让打印的表格每页自带标题行
- 刚构桥的优缺点_桥梁钢结构特点及优缺点
- 求一个数的整数分化问题(python)实现
- 多易教育KAFKA实战(2)-java生产者客户端API示例代码
- 线型(Line styles)的英文名称
- maskrcnn_benchmark 代码详解(更新中...)
- 大学生电子设计竞赛总结
- C语言 | 递归将一个整数n转换成字符串
- 能力是由短板决定的 交朋友的一个原则就是自己够朋友 from 纸牌屋2
热门文章
- html 样式 tab键 空格,设置Visual Studio2013的TAB键为4个空格
- 深度学习论文: Compounding the Performance Improvements of Assembled Techniques in a CNN及其PyTorch实现
- Stack Frame JAVA运行时数据区域之栈帧
- Android系统启动源码分析
- Team Leader 究竟要不要写代码?
- java 实现cmyk转rgb图片格式
- 预设Date时间格式化参数
- 分享几个快乐有趣的网站
- win10系统迁移到固态硬盘ssd
- oppoa5降级教程_OPPO A5官方原厂固件rom刷机包_全量系统降级包回退包下载A.14版