一、 在QQ互联官网上注册开发者账号、获取APP ID和APP Key
QQ互联的官网:https://connect.qq.com/
根据步骤按部就班的来就行了。
在创建应用的时候,基本信息要认真填,一般第二天就会审核好,我当时不知道怎么填,在这里浪费了好几天时间呢
此处网站名称必须得和备案的域名信息一致
网站回调地址很简单,备案过的域名就行了,但是注意回调域,要填该网站地址下的子级目录,回调域就是登录成功后的回调地址,当用户使用QQ登录成功时,会自动跳转到这个回调页面下,所以开发者可以在里面处理一些数据库或者是Session的操作
创建好了一个应用后,就可以获得APP ID和APP Key:
官方文档教程:https://wiki.connect.qq.com/准备工作_oauth2-0
二、PHP的QQ登录代码下载
我之所以在文章标题说我写的登录调用超简单,是因为我就只用到了三个文件(如下图所示),下载地址:https://download.csdn.net/download/jal517486222/11347475 , 文中也给出了这三个文件的完整代码。
如果去QQ互联网站上下载PHP版本demo的话,会发现demo中有好多个文件夹,文件夹里又有好几个文件,让人都看不下去。
如果你接入QQ只是为了获取用户的昵称、性别、头像这些不用授权的信息,那直接参考我的代码就行了,我的代码就是从官方demo的代码提炼出来的三个文件,绝对非常方便实用。
三、代码使用(代码解释见注释)
1. 首先在页面上放置一个QQ登录的链接或者按钮
我是在登录页面和个人后台管理页面都放置了一个QQ登录的图片按钮,为的是让用户可以在个人后台点击按钮绑定QQ,绑定后以后在登录页面时就可以使用QQ登录了。这个QQ登录图片可以在QQ互联的网站上下载的。
这里代码比较简单,主要就是一个QQ登录的链接,所以这个代码我就没放到上面的QQ_Oauth文件夹里了。
- 下图是用户后台绑定QQ:
关键代码如下:
<p>QQ绑定(开发中):
<?php
if(empty($openId)){
//$openId是在数据库的users表中查看当前用户是不是已经绑定过了QQ
echo ' <a href="#" οnclick=\'toLogin()\'><img src="../image/QQ_login.png"></a>';
}else{
echo $QQ_nick;
echo '<a class="layui-btn layui-btn-xs layui-btn-danger" href="#" οnclick=\'unbind()\'>解除绑定</a>';
}
?>
</p>
<script>
function toLogin()
{
//以下为按钮点击事件的逻辑。注意这里要重新打开窗口
//否则后面跳转到QQ登录,授权页面时会直接缩小当前浏览器的窗口,而不是打开新窗口
var A=window.open("../QQ_Oauth/index.php","TencentLogin","width=700,height=500,menubar=0,scrollbars=1,resizable=1,status=1,titlebar=0,toolbar=0,location=1");
//定时判断是否新窗口已经被关闭了,如果被关闭了,则执行刷新页面的操作。
var loop = setInterval(function() {
if(A.closed) {
clearInterval(loop);
//alert('closed');
parent.location.reload();
}
}, 1);
}
function unbind(){
//解除QQ绑定
if(confirm("你确定要解除此账号当前绑定的QQ吗?")){
//我在这里的解绑操作就是清空了当前用户的users表中的openID字段就行了。
$.post("doPost.php?action=unbindQQ", {
}, function(r){
if($.trim(r)==='success'){
alert("解除绑定成功!");
window.location.reload();
}else{
alert("解除绑定失败!");
}
});
}
}
</script