会使用composer安装package
-------------------------------------------------------------
下面开始
1. 安装 qqconect 包
https://github.com/kuange/qqconnect.git
composer require kuange/qqconnect2. 添加配置到公共配置文件中// QQ 互联配置
'qqconnect' => [
'appid' => '',
'appkey' => '',
'callback' => '',
'scope' => 'get_user_info,add_share,list_album,add_album,upload_pic,add_topic,add_one_blog,add_weibo,check_page_fans,add_t,add_pic_t,del_t,get_repost_list,get_info,get_other_info,get_fanslist,get_idolist,add_idol,del_idol,get_tenpay_addr',
'errorReport' => true
]--------------------------------------------------项目中代码:
1. 页面代码
<a href="{:url('home/oauth/qq')}">QQ登录</a>2. 控制器编写登录
use kuange\qqconnect\QC;
class OauthController extends Controller
{
public function qqAction()
{
$qc = new QC();
return redirect($qc->qq_login());
}
}回调use kuange\qqconnect\QC;
class CallbackController extends Controller
{
public function qqAction()
{
$qc = new QC();
echo $qc->qq_callback(); // access_token
echo $qc->get_openid(); // openid
// 待处理用户逻辑
$this->success('登录成功', url('/'));
}
}--------------------------------------------------------支持不同回调url
$qc->qq_login($another_callback_url);----------------------------------------------------------------------------------------------------------------
如果出现
The state does not match. You may be a victiom of CSRF. 请在在回调方法中 打印一下 state 和 session('QC_userData')看下 state 是否在 session('QC_userData') 中
域名需要一直
----------------------------------------------------------------------
获取用户信息需要重新 new QC();
$qc = new QC();
$access_token = $qc->qq_callback();
$openid = $qc->get_openid();
$qc = new QC($access_token, $openid);
$qq_user_info = $qc->get_user_info(); 最佳答案