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