function oauth_callback() { session(); if ($_SESSION['oauth_serv'] == 'sina') { $conf = $this->config['oauth']['weibo']; $oauth = new WeiboOAuth($conf['appid'], $conf['skey'], $_SESSION['oauth_keys']['oauth_token'], $_SESSION['oauth_keys']['oauth_token_secret']); $_SESSION['last_key'] = $oauth->getAccessToken($_REQUEST['oauth_verifier']); $client = new WeiboClient($conf['appid'], $conf['skey'], $_SESSION['last_key']['oauth_token'], $_SESSION['last_key']['oauth_token_secret']); $userinfo = $client->verify_credentials(); if (!isset($userinfo['id'])) { var_dump($conf, $_SESSION); return "请求错误:" . var_export($userinfo, true); } $model = createModel('UserInfo'); $username = '******' . $userinfo['id']; $u = $model->get($username, 'username')->get(); //不存在,则插入数据库 if (empty($u)) { $u['username'] = $username; $u['nickname'] = $userinfo['name']; $u['avatar'] = $userinfo['profile_image_url']; list($u['province'], $u['city']) = explode(' ', $userinfo['location']); //插入到表中 $u['id'] = $model->put($u); } //写入SESSION $_SESSION['isLogin'] = 1; $_SESSION['user_id'] = $u['id']; $_SESSION['user'] = $u; $this->setLoginStat(); $this->swoole->http->edirect(WEBROOT . "/person/index/"); } elseif ($_SESSION['oauth_serv'] == 'qq') { $conf = $this->swoole->config['oauth']['qq']; $oauth = new QQOAuth($conf['APP_ID'], $conf['APP_KEY']); $oauth->getAccessToken($_GET['oauth_token'], $_SESSION['oauth_keys']['oauth_token_secret'], $_GET['oauth_vericode']); $username = $oauth->access_token['openid']; $model = createModel('UserInfo'); $u = $model->get($username, 'username')->get(); //不存在,则插入数据库 if (empty($u)) { $user = $oauth->api_get('user/get_user_info'); if (empty($user)) { return Swoole\JS::js_back("请求错误"); } $u['username'] = $username; $u['nickname'] = $user['nickname']; $u['avatar'] = $user['figureurl_2']; //插入到表中 $u['id'] = $model->put($u); } //写入SESSION $_SESSION['isLogin'] = 1; $_SESSION['user_id'] = $u['id']; $_SESSION['user'] = $u; $this->setLoginStat(); $this->swoole->http->redirect(WEBROOT . "/person/index/"); } }
/** * @ignore */ public static function build_http_query_multi($params) { if (!$params) { return ''; } uksort($params, 'strcmp'); $pairs = array(); self::$boundary = $boundary = uniqid('------------------'); $MPboundary = '--' . $boundary; $endMPboundary = $MPboundary . '--'; $multipartbody = ''; foreach ($params as $parameter => $value) { if (in_array($parameter, array('pic', 'image')) && $value[0] == '@') { $url = ltrim($value, '@'); $content = file_get_contents($url); $array = explode('?', basename($url)); $filename = $array[0]; $multipartbody .= $MPboundary . "\r\n"; $multipartbody .= 'Content-Disposition: form-data; name="' . $parameter . '"; filename="' . $filename . '"' . "\r\n"; $multipartbody .= "Content-Type: image/unknown\r\n\r\n"; $multipartbody .= $content . "\r\n"; } else { $multipartbody .= $MPboundary . "\r\n"; $multipartbody .= 'content-disposition: form-data; name="' . $parameter . "\"\r\n\r\n"; $multipartbody .= $value . "\r\n"; } } $multipartbody .= $endMPboundary; return $multipartbody; }
return; } $content .= ' ' . get_full_url($GLOBALS['_J']['config']['site_url'], 'index.php?mod=topic&code=' . $tid); $qqwb_bind_topic = DB::fetch_first("select * from " . TABLE_PREFIX . "qqwb_bind_topic where `tid`='{$tid}'"); if ($qqwb_bind_topic) { return; } $qqwb_bind_info = DB::fetch_first("select * from " . TABLE_PREFIX . "qqwb_bind_info where `uid`='{$uid}'"); if (!$qqwb_bind_info) { return; } if (!$qqwb_bind_info['qqwb_username'] || !$qqwb_bind_info['token'] || !$qqwb_bind_info['tsecret']) { return; } require_once ROOT_PATH . 'include/ext/qqwb/qqoauth.php'; $QQAuth = new QQOAuth($qqwb_config['qqwb']['app_key'], $qqwb_config['qqwb']['app_secret'], $qqwb_bind_info['token'], $qqwb_bind_info['tsecret']); $t_result = array(); if ($totid < 1) { //视频、音乐待添加 $imageid = (int) $imageid; //取出第一个图片ID if ($imageid > 0 && ($topic_image = jlogic('image')->get_info($imageid))) { $tpic = topic_image($imageid, 'original', 1); if ($GLOBALS['_J']['config']['ftp_on']) { $tpic = RELATIVE_ROOT_PATH . 'data/cache/temp_images/topic/' . $tpic; if (!is_file($tpic)) { $ppic = topic_image($imageid, 'original', 0); if (false !== strpos($ppic, ':/' . '/')) { $temp_image = dfopen($ppic, 99999999, '', '', true, 3, $_SERVER['HTTP_USER_AGENT']); if (!$temp_image) { jio()->MakeDir(dirname($tpic));
function _get_oauth_url() { $callback = $this->Config['site_url'] . "/index.php?mod=qqwb&code=auth_callback"; require_once ROOT_PATH . 'include/ext/qqwb/qqoauth.php'; $QQAuth = new QQOAuth($this->QQWBConfig['app_key'], $this->QQWBConfig['app_secret']); $keys = $QQAuth->getRequestToken($callback); $_SESSION['qqwb_oauth_token_secret'] = $keys['oauth_token_secret']; jsg_setcookie('qqwb_oauth_token_secret', $_SESSION['qqwb_oauth_token_secret']); $aurl = $QQAuth->getAuthorizeURL($keys['oauth_token'], $callback); return $aurl; }