ThinkPHP5框架集成第三方登陆SDK实现登陆功能

最近使用Think PHP5框架开发一个应用,需要使用第三方登陆,因此用了这篇经验文章

  1. 下载第三方登陆的SDK文件,下载地址:http://dwz.cn/6Xy4PB
  2. 将下载下来的文件解压,在文件加里面有三个文件加,extend是tp5类库文件夹,extra是SDK配置文件,event是请求第三方接口获取授权信息
  3. 将得到的三个文件夹分别放到如图中所示的路径
    这里写图片描述
    4.新建一个Controller命名为oauth在此控制器写入请求授权方法:
 //登录地址
    public function login($type = null)
    {
        empty($type) && $this->error('参数错误');
        //加载ThinkOauth类并实例化一个对象
        $sns = ThinkOauth::getInstance($type);
        //跳转到授权页面
        $this->redirect($sns->getRequestCodeURL());
    }

5.使用oauth/login?type=sina既可以访问授权地址
6.再写入回调方法,代码方式如下

//授权回调地址
    public function callback($type = null, $code = null)
    {
        //支付宝code
        if ('alipay' == $type) {
            $code = $_GET['auth_code'];
        }
        (empty($type) || empty($code)) && $this->error('参数错误');

        //加载ThinkOauth类并实例化一个对象
        $sns = ThinkOauth::getInstance($type);

        //腾讯微博需传递的额外参数
        $extend = null;
        if ($type == 'tencent') {
            $extend = array('openid' => $this->_get('openid'), 'openkey' => $this->_get('openkey'));
        }

        //请妥善保管这里获取到的Token信息,方便以后API调用
        //调用方法,实例化SDK对象的时候直接作为构造函数的第二个参数传入
        //如: $qq = ThinkOauth::getInstance('qq', $token);
        $token = $sns->getAccessToken($code, $extend);
        //获取当前登录用户信息
        if (is_array($token)) {
            $TypeEven = new TypeEvent();
            $result = $TypeEven->$type($token);
            if ($result === true) {
                $this->success("恭喜!使用{$type}用户登录成功!", 'center/index');
                //$this->redirect('center/index');
            } else {
                $this->error($result);
            }
        }
    }

7.通过访问oauth/login?type=sina,如果可以访问到微博授权页面,则说明可以获取到微博用户的基本信息。
8.获取到微博用户的基本信后,可以按照自己的业务需求来实现账号登陆和账号绑定等功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值