<h5 style="color:green">现在越来越多的网站都实现了QQ快捷登录功能,下面小编就教大家怎么实现:</h5> [TOC] 一、申请接口 二、代码实现 **一、申请接口:** QQ登录需要使用[QQ互联](https://connect.qq.com/)。使用开发QQ登录: ![](https://box.kancloud.cn/e3e6101d30da866060210f48f35c5fd8_1113x727.png) 点击菜单上的 “应用管理”: ![](https://box.kancloud.cn/ca7c2eabc8adc081a8dd067a0df7e3f4_1071x562.png) 点击“创建应用” 选择 “创建网站应用”: ![](https://box.kancloud.cn/afe747a212827b97ca033daac967764a_1006x526.png) 填写相关信息创建,提交,审核。(网站名称和回调地址一定要写对,且网站能正常访问) ![](https://box.kancloud.cn/6e2b39b46fd68ccf5f4826dab4bd589d_1009x460.png) 回到地址可以填写多个,以后也可以修改 ![](https://box.kancloud.cn/d3b7a439a405a524b42efe59196e3216_864x278.png) **二、代码实现** 1.实现类库:链接: [QQ登录类库](https://pan.baidu.com/s/1kVI66fd)<br> 链接: https://pan.baidu.com/s/1kVI66fd 密码: 5rcz 2.登录方法: ~~~ /** * QQ登录访问页 */ function actionQqlogin(){ $http_referer = $_SERVER['HTTP_REFERER']; $loginurl = "http://" . $_SERVER['HTTP_HOST'] . "/user/user/login"; if($http_referer==$loginurl){ $http_referer = url('default/index'); } $_SESSION['HTTP_REFERER'] = $http_referer; Helper_Qqlogin::qq_login(); } ~~~ 3.回调方法:(回调方法在申请接口的时候填写的) ~~~ /** * QQ登录回调 */ function actionQqcallback(){ $get_user_info = Helper_Qqlogin::get_user_info(); $user = User::find("qq_openid='" . $get_user_info['qq_openid'] . "'")->getOne(); if($user->uid>0){//如果登录过 $url = helper_session::get("HTTP_REFERER"); helper_session::set('HTTP_REFERER', null); if ($user->status == 1) { // 将登录用户的信息存入SESSION,以便应用程序记住用户的登录状态 $this->_app->changeCurrentUser($user->aclData(), Helper_Array::toHashMap($user->roles, 'id', 'id')); $user->last_ip = IP; $user->last_time = CURRENT_TIMESTAMP; $user->save(); }else{ //如账号被禁用页面跳转 $this->_redirectMsg("操作错误", "账号{$user->username}已经被禁用,请联系管理员", $url,0,5);exit; } }else{//如果第一次登录,跳到注册页面 helper_session::set('qq_openid',$get_user_info['qq_openid']);//设置session helper_session::set('qq_user_info',$get_user_info);//设置session $url = url("user::user/qqtel"); } header("Location:$url"); } ~~~ 4.到这里已经获取到用户QQ的openid即qq_openid。拿到这个信息就可以进行业务逻辑操作了。接下来就根据你的网站判断需求进行即可。 <h5 style="color:green">有不懂的问题请下方留言,代码中有的部分是我自己的逻辑,请根据需要自行修改</h5>