第三方登录初始版

1.前往QQ互联平台下载SDK

QQ互联平台网站:QQ互联官网首页

2.在public目录下创建plugins目录(根据申请域名配置),而后将qq的SDK放入

3.访问 域名/plugins/qq/index.php进行配置项配置

APP ID :101542020
 
APP Key :539cd4f7784f107fa74ad58d87b5c916
回调地址 callback:主页地址 例:http://www.tpshop.com/index.php/home/login/qqcallback
注意:必须要tpshop  因为备案的要求


 4.在home模块Login控制器中新增qqcallback()方法

  /**
     * 第三方登录
     * @return \think\response\Redirect
     */
    public function qqcallback(){
 
        require_once('./plugins/qq/API/qqConnectAPI.php');
        $qc = new \QC();
        #获取access_token
        $access_token = $qc->qq_callback();
 
        echo $access_token;
        echo '<br>';
        #获取openid
        $openid = $qc->get_openid();
        echo $openid;
        echo '<br>';
        $qc = new \QC($access_token,$openid);
//        dd($qc->get_user_info());
        #获取用户信息
        $user_info = $qc->get_user_info();
        #业务逻辑层添加入库
        User::createUser($user_info,$openid);
        #跳转首页
        return redirect('../index');
    }

 


业务逻辑层进行入库操作,以openid判断库中是否存在

    /**
     * 第三方登录
     * @param $user_info
     * @param $openid
     * @return bool
     * @throws DbException
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\ModelNotFoundException
     */
    public static function createUser($user_info,$openid){
        #判断库里是否有唯一的open_id
        $is_user_info = \app\common\model\User::where('openid',$openid)->find();
        if ($is_user_info){
            session('user_info',$is_user_info);
        }else{
            #新添加数据
            $user_info = \app\common\model\User::create([
               'username'=>'',
               'nickname'=>$user_info['nickname'],
               'phone'=>0,
               'password'=>lodermd5(123456),
               'figure_url'=>$user_info['figureurl'],
                'email'=>'',
                'open_type'=>'qq',
                'openid'=>$openid
            ]);
            session('user_info',$user_info->toArray());
        }
        return true;
    }


具体详情参考

qq/API/qqConnectAPI.php

qq/example/oauth/index.php

最后修改view/login/login.html的a标签进行跳转

路径为:

<a href="/plugins/qq/example/oauth/index.php">
    <img src="../img/qq.png" width="35px" height="35px" />

</a>

————————————————
版权声明:本文为CSDN博主「Doc_ACwhite」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Doc_ACwhite/article/details/122837783

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值