Example #1
0
 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/");
     }
 }
Example #2
0
 /**
  * @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;
 }
Example #3
0
    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));
Example #4
0
 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;
 }