thinkphp实现第三方登陆之qq授权登陆
文章栏目117911790
发布时间:2020-01-22 09:17:26

概述

在QQ互联中申请接口:connect.qq.com,具体申请过程不在赘述,注意,网站名称、类别、简介要与网站备案信息中的一致,否则可能通不过申请。

下载官方sdk,并进行配置(将sdk包放入web环境,访问install/index进行配置),这是我们下载的文件,这个是测试包,我们要用到的只有API下的文件

thinkphp实现第三方登陆之qq授权登陆

配置完成后将sdk包中的API文件夹拷贝至extend目录中,并进行重命名(此处命名为qqlogin),可以对官方SDK进行一定的优化。

thinkphp实现第三方登陆之qq授权登陆

新建一个控制器,导入sdk

include_once( EXTEND_PATH."qqlogin/qqConnectAPI.php" );

调起QQ登录页面访问thinkphp控制器login/qq,执行以下代码

//qq登陆

public function qq(){
    Session::set('thirdParty','qq');
    $oauth = new \Oauth();
    $oauth->qq_login();
    exit();
}

在这里说一句,如果你没有用什么的测试安装那么你需要手动去配置你的appid跟appkey和回调地址,如果你用了上面的测试文件那么会生成一个配置文件,comm/inc.php文件下有对应的字段修改即可,

thinkphp实现第三方登陆之qq授权登陆

登录回调方法

$oauth = new \Oauth();
$access_token = $oauth->qq_callback();
$open_id = $oauth->get_openid(); // 获取openid

获取access_token和open_id后传入QC函数中调用,获取用户信息

$qc = new \QC($access_token, $open_id);
$info = $qc->get_user_info(); // 根据openid获取用户信息

然后做逻辑判断进行数据的存储跟更新!

还有一个就是这个测试要在正式环境下测试不然会出现回调不一致的问题