不能听命于自己者,就要受命于他人。网站首页学海无涯

PHP实现QQ第三方登录

陈佚2018-12-13 22:48:253人围观暂无分类
简介我的博客一直有做QQ登录但是却停留在获取用户openid那,因为入了开发文档的坑,通过QQ登录demo可以快速的完成QQ登录的流程!

我这边从申请应用开始介绍,如果已经申请好了的朋友可以直接跳过


1.第一步就是申请QQ开发应用啦,填写好资料后会提示7日之内会审核,一般一两天就通过了

QQ互联地址:https://connect.qq.com

创建QQ开发应用.png


2.通过之后我们就可以使用appid和appkey进行QQ登录的开发了

appid及secrect.png


3.最快的方式就是根据demo来开发 因为我已经踩过文档的坑了

QQ登录SDK 下载地址:http://wiki.connect.qq.com/sdk%E4%B8%8B%E8%BD%BD

下载之后我们直接放进站点里运行就可以了

首先打开demo.png

4.填写配置信息,appid,key和回调地址

填写配置信息.png

5.然后我们就可以在demo上进行QQ登录 跳转到回调域了

进行QQ登录.png

重点:这个时候我们填写的配置已经存在了API/comm/inc.php里了(想修改成别的方式引入配置,可以自行修改)

6.将demo中的核心文件全都放到自己网站的类库中去(也就是API文件夹)

我用的是tp3.2,所以将API文件夹放在了/ThinkPHP/Library/Vendor

//引入文件实例化 调用QQ登录
public function qqLogin(){
    vendor("QQapi.qqConnectAPI");
    $qc=new \QC();
    $qc->qq_login();
}


7.通过回调获取用户openid和用户信息(注:无法获取到QQ号,就跟微信开发也获取不到微信号是一样的,保护用户隐私)

    public function index(){
        if ($_GET['code']) {
            vendor("QQapi.qqConnectAPI");
            $oauth = new \Oauth();
            $access_token=$oauth->qq_callback();
            $openid=$oauth->get_openid();
            //下面两行是获取用户信息的,我这里是登录所以只用到openid
            // $qc=new \QC();
            // $userInfo=$qc->get_user_info();
            $result=M("user")->field('id,nickname,headimg,qq,username')->where(['qqopenid'=>$openid])->find();
            if($result){
                session('user',$result);
                $this->redirect('/Profile/Index');
            }else{
                $this->error("该QQ未绑定用户!");
            }
        }
}

以上就是全部的内容了,整体都比较简单,但是我还是踩坑了。希望可以帮到大家跳过这个坑




上一篇:linux系统下一键安装lnmp

下一篇:无

文章评论

    共有0条评论来说两句吧...