ThinkPHP QQ登录成功返回处理类

    QQ登录官方网站有详细的文档,我想大家根据文档配置,应该没什么大的问题。但已经登陆成功以后呢,登陆成功以后我们更应该如何处理?下面这个类我想应该能解决大家的问题。

以下的代码是本人从网上分享下来的,现在分享给大家

 class LoginAction extends Action {
    public function _initialize(){
        //引入QQ登陆类
        import('@.ORG.Connect.qqConnectAPI');
        //实例化
        $this->QC = new QC();
    }
    //开始登陆
    public function qq_login(){
        $this->QC->qq_login();
    }
    //回调
    public function qq_callback(){
        $token  = $this->QC->qq_callback();
        $openid = $this->QC->get_openid();
        $QC = new QC($token,$openid);
        $arr = $QC->get_user_info();
        
        $db=M("Member");
        $where['qq_openid']=$openid;
        //判断此QQ是否注册 唯一标识符openid 在表里加了个qq_openid为唯一哈
        $isqq=$db->where($where)->find();
        if($isqq){
            //写入登陆状态
            session('id', $isqq['id']);
            session('account', $isqq['account']); 
            session('nickname', $isqq['account']);
            session('email', $isqq['email']); 
            session('lastLoginTime', $isqq['lastLoginTime']); 
            session('login_count', $isqq['login_count']); 
            $this->success('登陆成功!',U('Member/index'));
        }else{
            $data['qq_openid']=$openid; //QQ登陆唯openid
            $data['account']=$arr['nickname']; //用户名
            $data['nickname']=$arr['nickname']; //网名
            $data['thumb']=$arr['figureurl_2']; //头像
            $data['status']='1'; //用户状态为启用
            //如果用户名存在
            $name['account']=$arr['nickname'];
            $isname=$db->where($name)->find();
            if($isname){
                //用户名存在添加随机数
                $data['account']=$arr['nickname']."_".rand(1000,9999);
            }
            //判断是否写入成功
            if($id=$db->add($data)){
                //写入登陆状态
                session('id', $id);
                session('account', $data['account']);
                session('nickname', $data['account']);
                session('email', '未填写');
                session('lastLoginTime', time());
                session('login_count', '1');
                $this->success('注册成功!',U('Member/index'));
            }else{
                $this->error('注册失败!',U('Member/login'));
            }    
        }
    }
 }

今天刚根据QC SDK for php 2.0文档在自己的网站上添加了一个QQ登录功能,刚开始遇到一点小问题,如可能未开启curl支持的问题但现在已经成功解决了,也成功连上,切成功获取登陆QQ的用户信息,但却不知道在成功登陆以后,返回的时候应该怎么处理,也是这个时候刚好发现这篇文章,所以把我的问题也给解决了,觉得特别赞,所以也就收藏,并且分享给更多人了。

给TA打赏
共{{data.count}}人
人已打赏
ThinkPHP

thinkphp3.2多关键词查询的时候传参数

2024-12-31 21:29:08

ThinkPHP

thinkphp生成静态html文件方法

2024-12-31 21:29:18

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索