实现 QQ JS SDK 第三方登陆

xiaoxiao2021-02-28  73

原文链接: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("出错啦") }); }

转载请注明原文地址: https://www.6miu.com/read-30088.html

最新回复(0)