在ThinkPHP框架中使用JS_SDK实现QQ登录

浏览:1252 发布日期:2017/04/02 分类:技术分享 关键字: 第三方登录 QQ互联登录 qq快速登录 JS_SDK
使用第三方的快速登录方式想必在很多地方已经很普遍了吧,基于用户习惯和使用体验来讲,这是很必然的,传统的注册页面表单动辄10几个注册字段,想必是个人都会疯掉。今天主要讲的是使用引入腾讯js api的方式,在thinkphp框架中配置使用达到最快最方便的QQ登录。
一、引入必要js。

在需要接入的QQ登录页面,放置如下js(APPID和回调地址请自行去QQ互联上申请):<script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" 
data-appid="APPID" data-redirecturi="REDIRECTURI" charset="utf-8"></script>
二、在合适地方放如下代码(可以任意指定其id):<span id="qqLoginBtn"></span>
<script type="text/javascript">
    QC.Login({
       btnId:"qqLoginBtn",    //插入按钮的节点id
             //用户需要确认的scope授权项,可选,默认all       
       scope:"all",
       //按钮尺寸,可用值[A_XL| A_L| A_M| A_S|  B_M| B_S| C_S],可选,默认B_S
       size: "A_XL"
});
</script>
三、到这里如果你的回调地址和APPID没有问题,它应该不会报错,但别高兴太早,这样并没有和服务端产生任何交互,所以它并没有什么意义,继续往下看。

四、继续完善配置。<script type="text/javascript">
       var cbLoginFun = function(oInfo, oOpts){
           doWork(oInfo.nickname,oInfo.figureurl_1);//传递需要的参数,这里只要昵称和图像(QQ空间40*40)
       };
       QC.Login({btnId:"qqLoginBtn",size: "A_L"},cbLoginFun);
 
        function doWork(nickname,figureurl_1){
              window.opener.location.href="__URL__/checkBindAccount?nickname="+nickname+'&figureurl_1='+figureurl_1;
              //关闭子窗口的同时让父窗口跳转
              QC.Login.signOut();//注销登录用户(QQ互联端),否则会在原来登录的地方留下空白,这个需要自己操作才知道
              
        }
       </script>
五、下面是服务端主要逻辑,可自行发挥。//检查是否已经帮定account
    public function checkBindAccount(){
        $nickname = $_GET['nickname'];
        $figureurl_1 = $_GET['figureurl_1'];
        if($nickname){
            $where['nickname']=$nickname;
 
            if(!M('member_third_login')->where($where)->count()){
                //未绑定任何帐号的
                //进入邦定页面
                $_SESSION['dawn_third_login_nickname'] = $nickname;
                $_SESSION['dawn_third_login_figureurl_1'] = $figureurl_1;
                $this->redirect('/login_third');
            }else{
                //查出与其绑定的帐户,直接进入center
                $mid=M('member_third_login')->where($where)->getField('mid');
                $user=M('member')->find($mid);
 
                $_SESSION['dawn']['third']['qq_nickname'] = $nickname;
                $_SESSION['dawn']['third']['figureurl_1'] = $figureurl_1;
                $_SESSION['dawn']['third']['login_type'] = 1;//表示此次登录方式第三方登录
 
                $_SESSION['dawn']['uid']=$user['id'];
                $_SESSION['dawn']['account']=$user['account'];
                $_SESSION['dawn']['sex']=$user['sex'];
                $_SESSION['dawn']['viplevel']=$user['viplevel'];
                $_SESSION['dawn']['bi_zen']=$user['bi_zen'];
                $_SESSION['dawn']['bi']=$user['bi'];
                $_SESSION['dawn']['bi_chong']=$user['bi_chong'];
                $this->redirect('/center');
            }
        }
    }





原文:http://www.dawnfly.cn/article-1-351.html
最佳答案
评论( 相关
后面还有条评论,点击查看>>