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

来源:互联网 发布:端口占用查询工具 编辑:程序博客网 时间:2024/04/29 04:39

最近使用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.获取到微博用户的基本信后,可以按照自己的业务需求来实现账号登陆和账号绑定等功能。

原创粉丝点击