QQ登录功能使用国际通用的OAuth2.0协议进行验证与授权,可通过以下两种方式进行网站开发:
(1)使用QQ互联提供的SDK包,用户体验统一,只需要修改少量代码,不需要理解验证授权流程,需要快速接入QQ登录的应用可选用此方法。
详见:SDK下载 JS SDK详见:JS SDK使用说明
(2)根据QQ登录OAuth2.0协议,自主开发,此方法自定义程度较高,需要与现有系统进行整合的网站可选用此方法。
详见:OAuth2.0开发文档
(3)社区类网站可以使用集成插件快速接入QQ登录。
详见集成插件。
使用JS_SDK
在页面顶部引入JS SDK库:
1 将“js?”后面的appid参数(示例代码中的:100229030)替换成您自己的appid:
<script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" data-appid="100229030" data-redirecturi="qc_callback.html" charset="utf-8"></script>
上面 data-redirecturi="qc_callback.html" 回调地址
2 HTML页面中粘贴如下代码,插入QQ登录按钮
<span id="qqLoginBtn"></span>
<script type="text/javascript">
<?php if(!$_SESSION['username'] and !$_COOKIE['username'] and !$_COOKIE['qqaccessToken'] ){ ?>
var cbLoginFun = function(oInfo, oOpts){
getToken(oInfo)
};
QC.Login({btnId:"qqLoginBtn"}, cbLoginFun);
function getToken(datas) {
if(QC.Login.check()){
QC.Login.getMe(function(openId, accessToken){
$.ajax({
type: "get",
url: "ajaxLogin",
data: 'qqopenid='+openId+'&qqaccessToken='+accessToken,
success: function(datad){
if(datad=='2')
{
window.location= 'http://www.taoktv.com/User/qqlogin'+'?figureurl_2='+datas.figureurl_2+'&nickname='+datas.nickname+'&qqopenid='+openId+'&qqaccessToken='+accessToken;
}
if(datad=='1')
{
window.location= '/User/';
}
},
error: function(){
alert("发送错误");
}
})
});
}
}
<?php }
if($_COOKIE['qqaccessToken'] and !$_SESSION['username']){
setcookie("qqaccessToken",'',time()-3600,'/');
unset($_COOKIE['qqaccessToken']);
?>
var cbLoginFun = function(oInfo, oOpts){
/*退出*/
QC.Login.signOut()
window.location.reload()
};
QC.Login({btnId:"qqLoginBtn"}, cbLoginFun);
<?php }?>
</script>