实现 QQ JS SDK 第三方登陆

原文链接:https://www.langhuaquan.com/blog/18.html

//HTML

 <ul class="clearfix">
                      <li>
                          <a href='https://graph.qq.com/oauth2.0/authorize?client_id=APPID&response_type=token&scope=all&redirect_uri=回调地址'>
                              <em><img src="/images/login/QQ.png" /></em>
                              <span>QQ</span>
                          </a>
                      </li>

</ul>

 

<script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" data-callback="true" data-appid="APPID" data-redirecturi="回调地址" charset="utf-8"></script>

 

//JS


//加上setTimeout是为了防止qq回调时,还未初始化完成就调用qq的API
setTimeout(function() {
//从页面收集OpenAPI必要的参数。get_user_info不需要输入参数,因此paras中没有参数
var paras = {};
//用js SDK调用OpenAPI
QC.api("get_user_info", paras)
//指定接口访问成功的接收函数,s为成功返回Response对象
.success(function(s) {
//成功回调,通过s.data获取OpenAPI的返回数据
QC.Login.getMe(function(openId, accessToken) {
qq_Login(s, openId, accessToken); //对应JS的qq_Login()的方法
});
})
//指定接口访问失败的接收函数,f为失败返回Response对象
.error(function(f) {
//失败回调
alert("使用QQ登录失败");
});
}, 200);


/**
  * QQ登录
  * @param s
  * @param openId
  * @param accessToken
  */
function qq_Login(s, openId, accessToken) {
//后台需要的参数
var params = {
'openId' : openId,
'nickName' : s.data.nickname,
'avatar' : s.data.figureurl_qq_1,
'sex' : s.data.gender=="男"?1:0
}
//向后台发送数据
showLoading();
$.post("/member/thirdLogin/", params, function(result) {
if(result.dealFlag=="1"){
console.info(result)
window.location.href = domain + "/";
}else{
alert(result.dealMsg);
}
hideLoading();
}).error(function(){
hideLoading();
alert("出错啦")
});
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值