第一步:通过QQ互联设置第三方登录的域名
第二步:给QQ图像一个点击事件
html代码
<div class="types">
<ul>
<!-- QQ的LOGO图-->
<li onclick="toLogin()"><img src="__STATIC__/home/img/qq.png" width="35px" height="35px" /></li>
</ul>
</div>
jquery 代码
//进入第三方登录页面
function toLogin()
{
// window.open("{:url('login/qq')}","TencentLogin","width=450,height=320,menubar=0,scrollbars=1, resizable=1,status=1,titlebar=0,toolbar=0,location=1");
location.href="{:url('login/qq')}","TencentLogin","width=450,height=320,menubar=0,scrollbars=1, resizable=1,status=1,titlebar=0,toolbar=0,location=1";
}
tp5.0 中控制器代码
/**
*调用第三方页面
*/
public function qq()
{
//调用第三方
require_once("./plugins/qq/API/qqConnectAPI.php");
$qc = new \QC();
$qc->qq_login();
}
/**
*实现第三方登录
*/
public function qqcallback()
{
//调用第三方
require_once("./plugins/qq/API/qqConnectAPI.php");
$qc = new \QC();
$access_token = $qc->qq_callback();//获取授权令牌
$openid = $qc->get_openid();//获取用户身份的唯一标识
$qc = new \QC($access_token,$openid);
$user = $qc->get_user_info();
$user['openid'] = $openid;
$user['open_type'] = 'qq';
//查询数据
$info = \app\home\model\User::where('open_type','qq')->where('openid',$openid)->find();
if($info){//已注册 更新昵称
$info->nickname = $user['nickname'];
$info->save();
session('uid',$info['id']);
}else{
//第一次登陆 创建新用户
//执行添加入库
$addRes = \app\home\model\User::create($user,true);
session('uid',$addRes['id']);
}
//记录信息
session('nickname',$user['nickname']);
//跳转至首页
$this->redirect('Index/index');
}