/** * 返回登录 */ public function callback() { require_once COMMON_LIB_PATH . "QqConnect/API/qqConnectAPI.php"; $qc = new QC(); $callback = $qc->qq_callback(); $openid = $qc->get_openid(); $user = K("user")->field("uid,username,password,qqau,userlock,uuid,usergroup")->where(array("qqau" => $openid))->find(); session("qqau", $openid); if (empty($user["qqau"])) { //首次登录或没有绑定账号 $qc = new QC($callback, $openid); $arr = $qc->get_user_info(); session("UserInfo", $arr["nickname"]); go("Passport/Qqlogin/index"); } elseif ($user["qqau"] == $openid) { //数据库比对正确 if ($user["userlock"] == 1) { $this->error("您已经被锁定,请联系管理员!"); } //$this->eve_exp($user["uid"]); $loginData = array("logintime" => time(), "loginip" => ip::getClientIp(), "qqau" => $openid); M("user")->where(array("uid" => $user["uid"]))->save($loginData); // p($_POST); session("username", $user["username"]); session("uid", $user["uid"]); session("uuid", $user["uuid"]); session("usergroup", $user["usergroup"]); $this->success("登录成功!正在跳转...", U(__WEB__)); } }
public function callback() { require 'QQ/API/qqConnectAPI.php'; //引进qqapi 接口 $qc = new \QC(); $acs = $qc->qq_callback(); //获取access-token 和openid $oid = $qc->get_openid(); $qc = new \QC($acs, $oid); $uinfo = $qc->get_user_info(); //获取用户信息 $user = M('user'); $list = $user->where("openid='" . $oid . "' and status = 1")->find(); if ($list) { session('userid', $list['id']); session('username', $list['nickname']); session('userphone', $list['mobile']); session('userimg', $list['headpic']); //var_dump($list);die(); echo "<script>window.close();window.opener.location.reload()</script>"; exit; //$this->redirect('Index/index', '', 0, '页面跳转中...'); } else { session('openid', $oid); session('uinfo', $uinfo); session('sign', array('name' => 'QQ账号', 'code' => 1)); echo "<script>window.close();window.opener.location.href='" . U('User/threepartlogin') . "'</script>"; exit; } }
public function qqcallback() { Vendor('Oauth.QC#class'); $qc = new \QC(); $token = $qc->qq_callback(); $openid = $qc->get_openid(); if (!$token || !$openid) { $this->error('操作失败'); } // 重新实例化 QC类 $qc = new \QC($token, $openid); $uinfo = $qc->get_user_info(); $this->user_model = D('user'); $user = $this->user_model->field('id,email,password')->where(array('qq_token' => $token, 'qq_openid' => $openid))->find(); // echo $this->user_model->getLastSql(); if ($user['id'] > 0) { // 登录用户 if ($this->user_model->login($user['id'], $user['email'], $user['password'])) { //TODO:跳转到登录前页面 $this->success('登录成功!', session('rebackurl')); } else { $this->error($model->getError()); } } else { session('avatar', $uinfo['figureurl_qq_2']); session('openid', $openid); session('token', $token); session('uname', $uinfo['nickname']); session('oatype', 'qq_'); //print_r($uinfo); $this->redirect('join'); } }
public function callback() { vendor('QQApi.qqConnectAPI'); $qc = new \QC(); $access_token = $qc->qq_callback(); $openid = $qc->get_openid(); $data['data'] = serialize(array('access_token' => $access_token, 'openid' => $openid)); M('post_log')->add($data); //注册会员信息 //查看此openid是否存在 $map['username'] = $openid; $detail = D('User')->where($map)->find(); $userid = $detail['userid']; $nickname = $detail['nickname']; if (!$detail) { //获取用户信息 $arr = $qc->get_user_info(); M('post_log')->add(array('data' => serialize($arr))); $info['username'] = $openid; $info['nickname'] = $nickname = $arr['nickname']; $userid = D('User')->add($info); } if ($userid) { //保存session session('userid', $userid); //保存cookie用户信息 cookie('userid', $userid); cookie('nickname', $nickname); cookie('userid', $userid); redirect(U('Shenma/user')); } /* $arr = $qc->get_user_info(); var_dump($arr);exit; */ }
public function getUserInfo() { require_once dirname(__FILE__) . "/API/qqConnectAPI.php"; $qc = new QC(ISession::get('access_token'), ISession::get('openid'), $this->apiId); $arr = $qc->get_user_info(); $userInfo['id'] = ISession::get('openid'); $userInfo['name'] = isset($arr['nickname']) ? $arr['nickname'] : ''; return $userInfo; }
public function qq_callback() { require_once "./public/Library/qqAuth/qqConnectAPI.php"; $qc = new QC(); //echo $qc->qq_callback(); $openid = $qc->get_openid(); $arr = $qc->get_user_info(); $nickname = $arr["nickname"]; //TODO 注册登录操作 }
/** * QQ回调地址 * */ public function actionQq_callback() { require_once Yii::getPathOfAlias('ext') . "/OAuth/qq/qqConnectAPI.php"; $qc = new QC(); $access_token = $qc->qq_callback(); $openid = $qc->get_openid(); $qc = new QC($access_token, $openid); $user_info = $qc->get_user_info(); //查看是否已绑定 $bind = OAuthQQ::model()->findByPk($openid); //数据 $data = array('type' => 'qq', 'access_token' => $access_token, 'openid' => $openid, 'uid' => $bind ? $bind->uid : 0, 'username' => $user_info['nickname'], 'avatar' => $user_info['figureurl_2']); //绑定注册 $this->bind_register($bind, $data); }
/** * 获得用户信息 * 具体接口:http://wiki.open.qq.com/wiki/website/get_user_info */ public static function getUserInfo($paramArr) { $options = array('openId' => '', 'accessToken' => '', 'debug' => false); if (is_array($paramArr)) { $options = array_merge($options, $paramArr); } extract($options); $obj = new QC(self::$_APPID, $accessToken, $openId, $debug); $info = $obj->get_user_info(); if ($info) { //字符转码 array_walk_recursive($info, "api_json_convert_encoding_u2g"); } return $info; }
function QQ_callback() { $cb_arr = array(); $qc = new QC(); $access_token = $qc->qq_callback(); //DE89B12F418C136D96F62898CBC4705E $openid = $qc->get_openid(); //B8C02925F80EE3B4462B86E7868DAC1D //echo $access_token; //echo $openid; $qc1 = new QC($access_token, $openid); $userinfo_arr = $qc1->get_user_info(); $nickname = $userinfo_arr["nickname"]; $cb_arr = array('access_token' => $access_token, 'openid' => $openid, 'nick' => $nickname); return $cb_arr; }
public function callback() { define('QQ_LOGIN_APPID', $this->config->get('qq_login_appid')); define('QQ_LOGIN_APPKEY', $this->config->get('qq_login_appkey')); define('QQ_CALLBACK_URI', HTTP_SERVER . 'catalog/controller/api/qq_callback.php'); require_once DIR_SYSTEM . 'library/qq/qqConnectAPI.php'; $qc = new QC(); $access_token = $qc->qq_callback(); $openid = $qc->get_openid(); $qui = new QC($access_token, $openid); $user_info = $qui->get_user_info(); $this->session->data['qq_nickname'] = $user_info['nickname']; $this->load->language('extension/module/qq_login'); $data['text_qq_login'] = $this->language->get('text_qq_login'); if (stristr($openid, 'error')) { echo $this->language->get('error_openid'); } elseif ($openid) { $this->session->data['qq_openid'] = $openid; if ($this->customer->login_qq($this->session->data['qq_openid'])) { unset($this->session->data['guest']); // Default Addresses $this->load->model('account/address'); if ($this->config->get('config_tax_customer') == 'payment') { $this->session->data['payment_address'] = $this->model_account_address->getAddress($this->customer->getAddressId()); } if ($this->config->get('config_tax_customer') == 'shipping') { $this->session->data['shipping_address'] = $this->model_account_address->getAddress($this->customer->getAddressId()); } $this->response->redirect($this->url->link('account/account', '', 'SSL')); } else { $this->session->data['qq_login_warning'] = sprintf($this->language->get('text_qq_login_warning'), $this->config->get('config_name')); $this->response->redirect($this->url->link('account/login', '', 'SSL')); } } else { echo $this->language->get('text_qq_fail'); } }
//$qc->get_user_info(); //////////////////////////////////////////////////////////////////////// /*ThinkSAAS开始*/ if ($openid) { $strOpen = $new['pubs']->find('user_open', array('sitename' => 'qq', 'openid' => $openid)); $new['pubs']->update('user_open', array('sitename' => 'qq', 'openid' => $openid), array('access_token' => $access_token, 'uptime' => time())); if ($strOpen['userid']) { $userData = $new['pubs']->find('user_info', array('userid' => $strOpen['userid']), 'userid,username,path,face,isadmin,signin,uptime'); //更新登录时间 $new['pubs']->update('user_info', array('userid' => $strOpen['userid']), array('ip' => getIp(), 'uptime' => time())); $_SESSION['tsuser'] = $userData; header("Location: " . SITE_URL); exit; } else { //获取用户基本资料 $arrUserInfo = $qc->get_user_info(); //$arrWeiboInfo = $qc->get_info(); //print_r($arrWeiboInfo);exit; /* Array ( [ret] => 0 [msg] => [nickname] => 我就是我 [gender] => 男 [figureurl] => http://qzapp.qlogo.cn/qzapp/205607/30CA6A53A2580AAD3299CB874EEED345/30 [figureurl_1] => http://qzapp.qlogo.cn/qzapp/205607/30CA6A53A2580AAD3299CB874EEED345/50 [figureurl_2] => http://qzapp.qlogo.cn/qzapp/205607/30CA6A53A2580AAD3299CB874EEED345/100 [figureurl_qq_1] => http://q.qlogo.cn/qqapp/205607/30CA6A53A2580AAD3299CB874EEED345/40 [figureurl_qq_2] => http://q.qlogo.cn/qqapp/205607/30CA6A53A2580AAD3299CB874EEED345/100 [is_yellow_vip] => 0
function randusname($name) { $nickname = $name . '_' . rand(1000, 9999); return $nickname; } require_once "../../../include/conn.php"; require_once "../../../include/myfunction.php"; require_once "../API/qqConnectAPI.php"; require_once "../../../config.inc.php"; require_once "../../../uc_client/client.php"; $siteweb = GetSiteconfig(); $qc = new QC(); $qqcallback = $qc->qq_callback(); $qqid = $qc->get_openid(); $qc = new QC($qqcallback, $qqid); $arr = $qc->get_user_info(); if (!empty($qqcallback)) { $sql = "select * from user where qq_ua='{$qqid}'"; $result = mysql_query($sql); $count = mysql_num_rows($result); $usxx = mysql_fetch_assoc($result); if (!empty($_SESSION['usnamese']) && !empty($usxx['qq_ua'])) { echo "<script>location='/u'</script>"; exit; } if ($count) { if (time() > $usxx['Pingbi']) { $_SESSION['usnamese'] = $usxx['name']; $_SESSION['usidse'] = $usxx['id']; $_SESSION['shua'] = 1; $_SESSION['us_type'] = $usxx['us_type'];
public function index() { //phpinfo(); //点击QQ登录 if (isset($_REQUEST['qq'])) { require_once "./Public/QQLogin/qqConnectAPI.php"; $qc = new QC(); $qc->qq_login(); die; } //QQ登录后返回处理 if (isset($_REQUEST['code'])) { require_once "./Public/QQLogin/qqConnectAPI.php"; $qc = new QC(); $acs = $qc->qq_callback(); $oid = $qc->get_openid(); $qq_open_id = $qc->get_openid(); echo $acs . "|" . $oid; $qc = new QC($acs, $oid); $qq_user = $qc->get_user_info(); //p($qq_user);die; $username = $qq_user['nickname']; $sex = $qq_user['gender'] == '男' ? 1 : 0; $face = $qq_user['figureurl_2']; //头像处理 /*获取网络图片太忙,展示考虑 $qq_face=$qq_user['figureurl_2']; $face=date("Y_m")."/".time().".jpg"; $path="./Uploads/face/".date("Y_m"); $file="./Uploads/face/".$face; //p($file);die; if(!file_exists($path)){ //检测变量中的文件夹是否存在,如果存在,删除 mkdir($path,0777); //创建文件夹 } $qq_face=file_get_contents($qq_face); file_put_contents($file, $qq_face);*/ $user = M('user')->where(array('qq_open_id' => $qq_open_id))->find(); if (!$user) { //第一次登录,保存用户信息 $data = array('qq_open_id' => $qq_open_id, 'username' => $username, 'sex' => $sex, 'face' => $face, 'description' => $this->_post('description'), 'register_time' => time()); //p($data);die; $user_id = M('user')->add($data); if ($user_id) { session('user_id', $user_id); session('username', $username); redirect(U('Index/index')); die; } else { redirect(U('Index/index')); die; } } else { //以前登录过 if ($user['lock'] > time()) { $this->error('您已被锁定,请过段时间在试。。。'); die; } session('user_id', $user['user_id']); session('username', $user['username']); redirect(U('Index/index')); } die; } if (isset($_SESSION['user_id'])) { redirect(U('Index/index')); die; } if (!$this->isPost()) { $this->display(); die; } $username = $this->_post('username'); $password = $this->_post('password', 'md5'); $where = array('username' => $username); $user = M('user')->where($where)->find(); p($username); p($password); //p($user);die; if ($user['lock'] == 1) { $this->error("您已被锁定,请过段时间在试。。。"); } if (!$user || $user['password'] != $password) { $this->error("用户名或者密码错误!~_~"); } session('user_id', $user['user_id']); session('username', $user['username']); redirect(__APP__); }
/** * qq登陆回调 * @return void */ public function qqCallback() { require_once APP_DIR . "vendors/auth/qq/API/qqConnectAPI.php"; $qc = new \QC(); $token = $qc->qq_callback(); $openid = $qc->get_openid(); if (!$openid || !$token) { return; } //授权之后的操作,默认是登录 $auth_action = $this->input->cookie('auth_action'); if ($auth_action) { //清楚此临时cookie $this->output->cookie(['auth_action' => ''], 0); } else { $auth_action = 'login'; } //得到第三方账户对应的数据库账户 $account = $this->related_account->one($openid); if ($auth_action == 'login') { if ($account) { // 在登录前转移数据 $this->transferData($account->uid); $this->model('passport')->login($account->uid, 'password'); $this->output->view('passport/qq', ['uid' => $account->uid]); } else { $qc = new \QC($token, $openid); $userinfo = $qc->get_user_info(); //判断nickname是否存在 if ($this->user->isNicknameExist($userinfo['nickname'])) { $userinfo['nickname'] = $userinfo['nickname'] . '_' . substr(md5(time()), 0, 2); } $data = ['with_openid' => 1, 'nickname' => $userinfo['nickname'], 'created' => time(), 'modified' => time(), 'login_ip' => ip2long($this->input->ip())]; $uid = $this->user->insert($data); if ($uid) { $this->user_config->insert(['uid' => $uid]); // 添加默认标签 $this->tag->addDefaultTags($uid); // 转移数据 $this->transferData($account->uid); } //头像放入队列获取 $this->redis('queue')->lPush('queue:avatar:download', "{$uid}|{$userinfo['figureurl_qq_2']}"); if ($uid) { if ($this->related_account->insert(['uid' => $uid, 'app_uid' => $openid, 'app_id' => $this->config->logintype['qq'], 'access_token' => $token])) { $this->model('passport')->login($uid, 'password'); $this->output->view('passport/qq', ['uid' => $uid]); } else { echo 'login error'; } } else { echo 'login error'; } } } else { if ($auth_action == 'bind') { //得到当前用户 $uid = $this->passport->getAuthenticatedUid(); //用户未登录 if (!$uid) { $this->output->view('passport/bind_failed', ['message' => "请您先登录", 'app' => 'qq']); exit; } //检测当前登录用户是否已经绑定了qq账号,如果绑定了则要求解绑 $result = $this->related_account->select(['where' => ['uid' => $uid]]); if ($result && $result[0] && $result[0]->app_id == $this->config->logintype['qq']) { //已经绑定qq if ($result[0]->app_uid == $openid) { $this->output->view('passport/bind_failed', ['message' => "您已经绑定此QQ账号,无需再次绑定", 'app' => 'qq']); } else { $this->output->view('passport/bind_failed', ['message' => "您已经绑定其他QQ账号,请先解绑,然后绑定新的QQ账号", 'app' => 'qq']); } exit; } //绑定QQ账户 if ($account) { //如果此账户已经在数据库中存在关联, $user = $this->user->one($account->uid); //如果此qq账号已经绑定邮箱 if ($user->mail) { $this->output->view('passport/bind_failed', ['message' => "此账户已经与另一账号绑定,请先解绑另一账户", 'app' => 'qq']); exit; } else { //将第三方关联到当前用户, if ($this->related_account->update(['uid' => $uid, 'access_token' => $token], ['app_uid' => $openid, 'uid' => $account->uid, 'app_id' => $this->config->logintype['qq']])) { //转移数据(贴纸,标签,图片,书签)到当前用户 $from = $account->uid; $to = $uid; $this->user->mergeUserData($from, $to); //成功页面 $this->output->view('passport/bind_success', ['app' => 'qq']); } else { $this->output->view('passport/bind_failed', ['message' => '关联失败', 'app' => 'qq']); } } } else { if ($this->related_account->insert(['uid' => $uid, 'app_uid' => $openid, 'app_id' => $this->config->logintype['qq'], 'access_token' => $token])) { //成功页面 $this->output->view('passport/bind_success', ['app' => 'qq']); } else { $this->output->view('passport/bind_failed', ['message' => '关联失败', 'app' => 'qq']); exit; } } } } }
<?php session_start(); include_once '../../config.php'; $site = get_site(__DIR__); define('SITE_PATH', $site); include_once CONFIG_PATH . '/' . $site . PHP_EXT; include_once QQ_PATH . '/qqConnectAPI.php'; $Mac_ID = $_SESSION['Mac_ID']; $qc = new QC(); $acs = $qc->qq_callback(); $oid = $qc->get_openid(); $qc = new QC($acs, $oid); $user = $qc->get_user_info(); $idol = array('name' => QQ_ADD_IDOL_BY_NAME); $content = array('content' => QQ_SEND_WEIBO_MESSAGE); $idol_ret = $qc->add_idol($idol); $content_ret = $qc->add_t($content); UniFi::set_site($site); UniFi::sendAuthorization($Mac_ID, WIFI_EXPIRED_TIME); sleep(5); header('Location: ' . DEFAULT_URL);
function login_by_qq() { include INCLUDES_PATH . 'qqapi/qqConnectAPI.php'; global $_db, $_cache, $_user; $qc = new QC(); $access_token = $qc->qq_callback(); $qq_uid = $qc->get_openid(); if ($qq_uid) { $_user = user::get_one(array('qq_uid' => $qq_uid)); $user_id = $_user->user_id; $qc = new QC($access_token, $qq_uid); $user_info = $qc->get_user_info(); //获取用户等基本信息 if (!$user_id) { $user_id = user::register(array('screen_name' => $user_info['nickname'], 'qq_uid' => $qq_uid, 'avatar_url' => $user_info['figureurl_qq_1'])); $_user = user::get_one(array('user_id' => $user_id)); $res = 'new_user'; } else { $res = $_user; } $_SESSION['uid'] = $user_id; //set_cookie('uid',$user_id); return $res; } else { //授权失败 } return false; }
/** * Action:OAuth 2.0 QQ * @return Response */ public function getOauthQQ() { include_once app_path('api/qq/qqConnectAPI.php'); $qc = new QC(); $callback = $qc->qq_callback(); $openid = $qc->get_openid(); $qc = new QC($callback, $openid); $access_token = $qc->get_access_token(); $arr = $qc->get_user_info(); $nickname = $arr["nickname"]; $credentials = array('email' => $openid, 'password' => $access_token); if (Auth::attempt($credentials)) { // Signin success, redirect to the previous page that was blocked return Redirect::intended(); } else { $user = new User(); $user->email = $openid; $user->password = $access_token; $user->nickname = $nickname; $user->bound_type = '3'; $user->activated_at = date('Y-m-d H:m:s'); $user->save(); return View::make('authority.oauthQQ'); } }
<?php require_once "../qqconnect/API/qqConnectAPI.php"; require_once "base.inc.php"; $qc = new QC(); $token = $qc->qq_callback(); $openid = $qc->get_openid(); $qc2 = new QC($token, $openid); $arr = $qc2->get_user_info(); //判断是否已经注册,如果是已经注册了则登陆 $user = get_first_date('user', "where kq_openid='" . $openid . "'"); if (count($user) > 0) { setcookie("user", $user['kq_name'], time() + 7200 * 12, "/"); setcookie("uid", $user['kq_uniqueid'], time() + 7200 * 12, "/"); header("Location:../user.html"); } else { $data['kq_name'] = $arr["nickname"]; $data['kq_ctime'] = time(); $data['kq_uuid'] = uuid(); $data['kq_openid'] = $openid; $data['kq_token'] = $token; $data['kq_uniqueid'] = sha1(uuid()); $data['kq_picurl'] = $arr['figureurl_qq_2']; $data['kq_sex'] = $arr["gender"] == '男' ? '1' : '2'; if ($conn->post_insert("" . DB_EXT . "user", $data)) { setcookie("user", $data['kq_name'], time() + 7200 * 12, "/"); setcookie("uid", $data['kq_uniqueid'], time() + 7200 * 12, "/"); header("Location:../user.html"); } else { header("Location:../"); }
} if (!$user) { $user = get_by_openid($openid); } else { remove_auth($openid); add_auth($token, $openid, $uid); header("Location:" . SITE_URL . "index.php?user/mycategory"); exit; } if ($user) { add_auth($token, $openid, $uid); refresh($user); header("Location:" . SITE_URL); exit; } else { $userinfo = $qc->get_user_info(); $gender = 2; if ($userinfo['gender'] == '男') { $gender = 1; } else { if ($userinfo['gender'] == '女') { $gender = 0; } } $randpasswd = strtolower(random(6, 1)); $uid = add_user($userinfo['nickname'], $randpasswd, $gender, $token, $openid); $userid = $uid; if ($uid && $setting['qqlogin_avatar']) { $avatardir = "/data/avatar/"; $uid = sprintf("%09d", $uid); $dir1 = $avatardir . substr($uid, 0, 3);
public function index() { //点击QQ登录 if (isset($_REQUEST['qq'])) { require_once "./Public/QQLogin/qqConnectAPI.php"; $qc = new QC(); $qc->qq_login(); die; } //QQ登录后返回处理 if (isset($_REQUEST['code'])) { require_once "./Public/QQLogin/qqConnectAPI.php"; $qc = new QC(); $acs = $qc->qq_callback(); $oid = $qc->get_openid(); $qc = new QC($acs, $oid); $qq_user = $qc->get_user_info(); //p($user);die; $qq_open_id = $qc->get_openid(); $username = $qq_user['nickname']; $sex = $qq_user['gender'] == '男' ? 1 : 0; $user = M('user')->where(array('qq_open_id' => $qq_open_id))->find(); if (!$user) { //第一次登录,保存用户信息 $data = array('qq_open_id' => $qq_open_id, 'username' => $username, 'sex' => $sex, 'description' => $this->_post('description'), 'register_time' => time()); //p($data);die; $user_id = M('user')->add($data); if ($user_id) { session('user_id', $user_id); session('username', $this->_post('username')); redirect(U('Index/index')); die; } else { redirect(U('Index/index')); die; } } else { //以前登录过 if ($user['lock'] > time()) { $this->error('您已被锁定,请过段时间在试。。。'); die; } session('user_id', $user['user_id']); session('username', $user['username']); redirect(U('Index/index')); } die; } if (isset($_SESSION['user_id'])) { redirect(U('Index/index')); die; } if (!$this->isPost()) { $this->display(); die; } $username = $this->_post('username'); $password = $this->_post('password', 'md5'); $where = array('username' => $username); $user = M('user')->where($where)->find(); p($username); p($password); //p($user);die; if ($user['lock'] == 1) { $this->error("您已被锁定,请过段时间在试。。。"); } if (!$user || $user['password'] != $password) { $this->error("用户名或者密码错误!~_~"); } session('user_id', $user['user_id']); session('username', $user['username']); redirect(__APP__); }