一、引入必要js。
在需要接入的QQ登录页面,放置如下js(APPID和回调地址请自行去QQ互联上申请):
<script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js"
data-appid="APPID" data-redirecturi="REDIRECTURI" charset="utf-8"></script>二、在合适地方放如下代码(可以任意指定其id):<span id="qqLoginBtn"></span>
<script type="text/javascript">
QC.Login({
btnId:"qqLoginBtn", //插入按钮的节点id
//用户需要确认的scope授权项,可选,默认all
scope:"all",
//按钮尺寸,可用值[A_XL| A_L| A_M| A_S| B_M| B_S| C_S],可选,默认B_S
size: "A_XL"
});
</script>三、到这里如果你的回调地址和APPID没有问题,它应该不会报错,但别高兴太早,这样并没有和服务端产生任何交互,所以它并没有什么意义,继续往下看。四、继续完善配置。
<script type="text/javascript">
var cbLoginFun = function(oInfo, oOpts){
doWork(oInfo.nickname,oInfo.figureurl_1);//传递需要的参数,这里只要昵称和图像(QQ空间40*40)
};
QC.Login({btnId:"qqLoginBtn",size: "A_L"},cbLoginFun);
function doWork(nickname,figureurl_1){
window.opener.location.href="__URL__/checkBindAccount?nickname="+nickname+'&figureurl_1='+figureurl_1;
//关闭子窗口的同时让父窗口跳转
QC.Login.signOut();//注销登录用户(QQ互联端),否则会在原来登录的地方留下空白,这个需要自己操作才知道
}
</script>五、下面是服务端主要逻辑,可自行发挥。//检查是否已经帮定account
public function checkBindAccount(){
$nickname = $_GET['nickname'];
$figureurl_1 = $_GET['figureurl_1'];
if($nickname){
$where['nickname']=$nickname;
if(!M('member_third_login')->where($where)->count()){
//未绑定任何帐号的
//进入邦定页面
$_SESSION['dawn_third_login_nickname'] = $nickname;
$_SESSION['dawn_third_login_figureurl_1'] = $figureurl_1;
$this->redirect('/login_third');
}else{
//查出与其绑定的帐户,直接进入center
$mid=M('member_third_login')->where($where)->getField('mid');
$user=M('member')->find($mid);
$_SESSION['dawn']['third']['qq_nickname'] = $nickname;
$_SESSION['dawn']['third']['figureurl_1'] = $figureurl_1;
$_SESSION['dawn']['third']['login_type'] = 1;//表示此次登录方式第三方登录
$_SESSION['dawn']['uid']=$user['id'];
$_SESSION['dawn']['account']=$user['account'];
$_SESSION['dawn']['sex']=$user['sex'];
$_SESSION['dawn']['viplevel']=$user['viplevel'];
$_SESSION['dawn']['bi_zen']=$user['bi_zen'];
$_SESSION['dawn']['bi']=$user['bi'];
$_SESSION['dawn']['bi_chong']=$user['bi_chong'];
$this->redirect('/center');
}
}
}


原文:http://www.dawnfly.cn/article-1-351.html
最佳答案