admin管理员组文章数量:1530076
Thinkphp实现http://jingyan.baidu/article/e4511cf33e3e9f2b845eafa4.html
实现思路
对QQ登录的官方SDK进行了一些修改,使其更加容易的整合到自己的网站上去。
使用说明:
1、到http://connect.qq/ 申请QQ登录的appid、appkey。
2、将QQ登录接口解压,然后把整个qq目录上传到你的网站上去。
3、运行http://你的域名/qq/install.php,对QQ登录进行配置。
4、对数据库的用户表增加两个字段,access_token(varchar(50))、openid(varchar(50))。
5、打开qq/config.php,将里面的数据库连接、用户表信息修改为你网站上对应的信息,然后上传覆盖。
6、打开qq/oauth.php,将第12行、25行修改为你网站登录成功后是如何用session保存用户id的。
7、打开qq/bind.php,将第12行、46行修改为你网站登录成功后是如何用session保存用户id的。
8、将<a href="http://www.php1/"> 转载请注明来源:快速将QQ登录接口整合到你的网站上去
http://www.php1/Content/KuaiSuJiang_QQ_DengLuJieKouZhengHeDaoNiDeWangZhanShangQu.html
申请及其问题总结
1.打开open.qq 添加创建应用:-》输入常规的数据 你会看到对应的APP ID和KEY值,这是对你身份证的唯一的验证
2.打开 http://connect.qq/manage/ 点击->添加网站->输入相关信息 这里比较特别注意的是,回调地址那里填上你域名就可以了以上申核需要一到两天时间,耐心等待。。。
3.打开http://wiki.opensns.qq/wiki/%E3%80%90QQ%E7%99%BB%E5%BD%95%E3%80%91%E7%BD%91%E7%AB%99%E6%8E%A5%E5%85%A5找到SDK库下载,我在这里下载是官方的php SDK包,如果你的虚拟空间file_get_contents不技持https,可以考虑用curl函数来替代,好多童鞋常常因为获取不到access_token也就是这个原因。任何一个包不是一气呵成了,还需你配置相关的配置,这个繁索的调试过程我就在这里展开谈了。说说原理->通过你的网站登陆QQ state和scope->获得access_token->再获得每个QQ唯一的身份ID openid
4.在这里你调试成功后,获得ID后,还需和你当前网站帐号绑定,才能下次登陆的时候自动去识别你的相关绑定帐号内容
常见问题:
1.Warning: session_start() [function.session-start]: open(/tmp\sess_s9b1ahi6vnvc0pfl2e0dcd0l10, O_RDWR) failed: 解决方法:No such file or directory (2) inD:\powhost\bbcarblog\web\test\qqSDK\comm\session.php on line 196
找到sssion.php session_save_path 加上注释//,注释掉设置路径
2.Notice: file_get_contents() [function.file-get-contents]: Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? inD:\powhost\bbcarblog\web\test\qqSDK\comm\utils.php on line 37
解决方法:找到 Utils.php function get_url_contents 函数内容直接用下面代码替代,因为file_get_content默认不支持访问https,如果要支持需配置php.ini,激活 php_openssl.dll 模块,这个大家百度配置一下便可
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL,$url);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- $result = curl_exec($ch);
- return $result
1.授权登录
http://openapi.qzone.qq/oauth/show?which=ConfirmPage&display=pc&response_type=code&client_id=101223150&redirect_uri=http://t.zy62/qqlogin.php
得到code
2.获取access_token
https://graph.qq/oauth2.0/token?grant_type=authorization_code&client_id=101223150&redirect_uri=http://t.zy62/qqlogin.php&client_secret='换成你自己的'&code=7A94789A36833731F7DED5C170BDA4FC
返回结果:
access_token=72103010DD08905F8B171E4EF378B5CC&expires_in=7776000&refresh_token=53303C0A75719EED9E3CDF01C3476955
3.获取openid
https://graph.qq/oauth2.0/me?access_token=72103010DD08905F8B171E4EF378B5CC
返回结果:标准jsonp格式
callback( {"client_id":"101223150","openid":"9ECFD84190F7D5D40E013CF84D0979FF"} );
4.获取用户资料
https://graph.qq/user/get_user_info?access_token=72103010DD08905F8B171E4EF378B5CC&oauth_consumer_key=101223150&openid=9ECFD84190F7D5D40E013CF84D0979FF&format=json
参数: access_token,appid,openid
返回结果:
{ "ret": 0, "msg": "", "is_lost":0, "nickname": "yi.", "gender": "女", "province": "湖北", "city": "武汉", "year": "1994", "figureurl": "http:\/\/qzapp.qlogo\/qzapp\/101223150\/9ECFD84190F7D5D40E013CF84D0979FF\/30", "figureurl_1": "http:\/\/qzapp.qlogo\/qzapp\/101223150\/9ECFD84190F7D5D40E013CF84D0979FF\/50", "figureurl_2": "http:\/\/qzapp.qlogo\/qzapp\/101223150\/9ECFD84190F7D5D40E013CF84D0979FF\/100", "figureurl_qq_1": "http:\/\/q.qlogo\/qqapp\/101223150\/9ECFD84190F7D5D40E013CF84D0979FF\/40", "figureurl_qq_2": "http:\/\/q.qlogo\/qqapp\/101223150\/9ECFD84190F7D5D40E013CF84D0979FF\/100", "is_yellow_vip": "0", "vip": "0", "yellow_vip_level": "0", "level": "0", "is_yellow_year_vip": "0" }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php
//print_r($_GET);
//exit('qqlogin');
//1.获取code
$code
=
$_GET
[
'code'
];
//2.获取access_token
$url
=
'https://graph.qq/oauth2.0/token?grant_type=authorization_code&client_id=101223150&redirect_uri=http://t.zy62/qqlogin.php&client_secret='
换成你自己的
'&code='
.
$code
;
$rs
=
file_get_contents
(
$url
);
$arr
=
explode
(
'&'
,
$rs
);
//print_r($arr);
//3获取openid
$url
=
'https://graph.qq/oauth2.0/me?'
.
$arr
[0];
$rs
=
file_get_contents
(
$url
);
echo
$rs
;
|
版权声明:本文标题:QQ授权网站进行登录~php篇 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1726253184a1062681.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论