init() public static method

初始化
public static init ( $client_id, $client_secret )
$client_id 即 appid
$client_secret 即 appkey
Beispiel #1
0
 public function shouquan($code, $openid, $openkey, $redirect_uri)
 {
     OAuth::init($this->client_id, $this->client_secret);
     Tencent::$debug = $this->debug;
     $callback = $redirect_uri;
     //回调url
     if ($code) {
         //已获得code
         //获取授权token
         $url = OAuth::getAccessToken($code, $callback);
         $r = Http::request($url);
         parse_str($r, $out);
         //存储授权数据
         if (@$out['access_token']) {
             $_SESSION['t_access_token'] = $out['access_token'];
             $_SESSION['t_refresh_token'] = $out['refresh_token'];
             $_SESSION['t_expire_in'] = $out['expires_in'];
             $_SESSION['t_code'] = $code;
             $_SESSION['t_openid'] = $openid;
             $_SESSION['t_openkey'] = $openkey;
             //验证授权
             $r = OAuth::checkOAuthValid();
             if ($r) {
                 //echo('<h3>授权成功!!!</h3><br>');
                 //print_r($r);exit;
                 //header('Location: ' . $callback);//刷新页面
                 return $r;
             } else {
                 exit('<h3>授权失败,请重试</h3>');
             }
         } else {
             exit($r);
         }
     }
 }
Beispiel #2
0
function Tencent()
{
    require_once APP_ROOT_PATH . 'system/api_login/Tencent/Tencent.php';
    OAuth::init($GLOBALS['m_config']['tencent_app_key'], $GLOBALS['m_config']['tencent_app_secret']);
    $openid = trim($GLOBALS['request']['openid']);
    $openkey = trim($GLOBALS['request']['openkey']);
    if ($GLOBALS['m_config']['tencent_bind_url'] == "") {
        $app_url = get_domain() . APP_ROOT . "/api_callback.php?c=Tencent";
    } else {
        $app_url = $GLOBALS['m_config']['tencent_bind_url'];
    }
    $access_token = trim($GLOBALS['request']['access_token']);
    es_session::set("t_access_token", $access_token);
    es_session::set("t_openid", $openid);
    es_session::set("t_openkey", $openkey);
    if (es_session::get("t_access_token") || es_session::get("t_openid") && es_session::get("t_openkey")) {
        $r = Tencent::api('user/info');
        $r = json_decode($r, true);
        $name = $r['data']['name'];
        if ($GLOBALS['db']->getOne("select count(*) from " . DB_PREFIX . "user where tencent_id = '" . $name . "'") == 0) {
            $GLOBALS['db']->query("update " . DB_PREFIX . "user set t_access_token ='" . $access_token . "',t_openkey = '" . $openkey . "',t_openid = '" . $openid . "', tencent_id = '" . $name . "' where id =" . intval($GLOBALS['user_info']['id']));
        } elseif (intval($GLOBALS['db']->getOne("select id from " . DB_PREFIX . "user where tencent_id = '" . $name . "'")) == intval($GLOBALS['user_info']['id'])) {
            $GLOBALS['db']->query("update " . DB_PREFIX . "user set t_access_token ='" . $access_token . "',t_openkey = '" . $openkey . "',t_openid = '" . $openid . "', tencent_id = '" . $name . "' where id =" . intval($GLOBALS['user_info']['id']));
        } else {
            $root['return'] = 0;
            $root['info'] = "该微博帐号已被其他会员绑定";
            output($root);
        }
    }
    $root['return'] = 1;
    $root['info'] = "绑定成功";
    $root['login_type'] = "Tencent";
    output($root);
}
Beispiel #3
0
 public function checkUser($do)
 {
     // dump($_REQUEST);
     // dump($do);
     // exit;
     OAuth::init(QQ_KEY, QQ_SECRET);
     $callback = $this->getCallback('qq', $do);
     if ($_REQUEST['code']) {
         $code = $_REQUEST['code'];
         $openid = $_REQUEST['openid'];
         $openkey = $_REQUEST['openkey'];
         //获取授权token
         $url = OAuth::getAccessToken($code, $callback);
         $r = Http::request($url);
         parse_str($r, $out);
         //存储授权数据
         if ($out['access_token']) {
             $_SESSION['t_access_token'] = $out['access_token'];
             $_SESSION['t_refresh_token'] = $out['refresh_token'];
             $_SESSION['t_expire_in'] = $out['expires_in'];
             $_SESSION['t_code'] = $code;
             $_SESSION['t_openid'] = $openid;
             $_SESSION['t_openkey'] = $openkey;
             $_SESSION['qq']['access_token'] = $out['access_token'];
             $_SESSION['qq']['refresh_token'] = $out['refresh_token'];
             $_SESSION['open_platform_type'] = 'qq';
             //验证授权
             $r = OAuth::checkOAuthValid();
             if ($r) {
                 // header('Location: ' . $callback);//刷新页面
                 return true;
             } else {
                 // exit('<h3>授权失败,请重试</h3>');
                 return false;
             }
         } else {
             exit($r);
         }
     } else {
         //获取授权code
         if ($_GET['openid'] && $_GET['openkey']) {
             //应用频道
             $_SESSION['t_openid'] = $_GET['openid'];
             $_SESSION['t_openkey'] = $_GET['openkey'];
             //验证授权
             $r = OAuth::checkOAuthValid();
             if ($r) {
                 // header('Location: ' . $callback);//刷新页面
                 return true;
             } else {
                 // exit('<h3>授权失败,请重试</h3>');
                 return false;
             }
         } else {
             $url = OAuth::getAuthorizeURL($callback);
             header('Location: ' . $url);
         }
     }
 }
Beispiel #4
0
 /**
  * load some required files
  */
 function init()
 {
     parent::init();
     $row = $this->member_get_oauth_type($this->type);
     if (!$row->id) {
         exit('access deny');
     }
     $this->oauth_id = $row->id;
     $this->app_key = $row->key1;
     $this->app_secret = $row->key2;
     $this->url = host() . url('oauth/' . $this->type . '/return');
     session_start();
     Load::file(base_path() . 'modules/oauth/libraries/qq/Tencent.php');
     \OAuth::init($this->app_key, $this->app_secret);
     \Tencent::$debug = false;
 }
function addthis()
{
    @session_start();
    require 'config/OAuth_config.php';
    require 'libs/OAuth.php';
    $oauth = new OAuth();
    $oauth->init();
    if ($oauth->authCode) {
        $_SESSION['authcode'] = $oauth->authCode;
    }
    if ($oauth->user['loggedIn']) {
        print_r($oauth->user);
        $dd = get_user_by('login', $oauth->user);
        if (!$dd) {
            //$random_password = wp_generate_password();
            $userdata = array('user_login' => $oauth->user, 'user_pass' => $oauth->user, 'user_nicename' => $oauth->user, 'display_name' => $oauth->user);
            $user_id = wp_insert_user($userdata);
            @add_user_meta($user_id, 'wp_capabilities', 'a:1:{s:6:"author";b:1;}');
        }
        $dd = get_user_by('login', $oauth->user);
        $creds = array();
        $a = $dd->get('$user_login');
        $creds['user_login'] = "******";
        $creds['user_password'] = "******";
        $creds['remember'] = false;
        $u = wp_signon($creds);
        if (is_wp_error($u)) {
            echo $u->get_error_message();
        } else {
            $h = $_SERVER['HTTP_HOST'];
            echo '<meta http-equiv="refresh" content="1";url="$h">';
        }
    } else {
        echo "<a href='{$oauth->signinURL}'>Sign In</a> ";
    }
}
function Tencent()
{
    es_session::start();
    require_once APP_ROOT_PATH . 'system/api_login/Tencent/Tencent.php';
    OAuth::init($GLOBALS['m_config']['tencent_app_key'], $GLOBALS['m_config']['tencent_app_secret']);
    $openid = trim($GLOBALS['request']['openid']);
    $openkey = trim($GLOBALS['request']['openkey']);
    if ($GLOBALS['m_config']['tencent_bind_url'] == "") {
        $app_url = get_domain() . APP_ROOT . "/api_callback.php?c=Tencent";
    } else {
        $app_url = $GLOBALS['m_config']['tencent_bind_url'];
    }
    $access_token = trim($GLOBALS['request']['access_token']);
    es_session::set("t_access_token", $access_token);
    es_session::set("t_openid", $openid);
    es_session::set("t_openkey", $openkey);
    if (es_session::get("t_access_token") || es_session::get("t_openid") && es_session::get("t_openkey")) {
        $r = Tencent::api('user/info');
        $r = json_decode($r, true);
        $name = $r['data']['name'];
        $user_data = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where tencent_id = '" . $name . "' and tencent_id <> ''");
        if ($user_data) {
            if ($user_data['is_effect'] == 0 || $user_data['is_delete'] == 1) {
                $result['resulttype'] = 0;
            } else {
                $user_current_group = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_group where id = " . intval($user_data['group_id']));
                $user_group = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_group where score <=" . intval($user_data['score']) . " order by score desc");
                if ($user_current_group['score'] < $user_group['score']) {
                    $user_data['group_id'] = intval($user_group['id']);
                }
                $GLOBALS['db']->query("update " . DB_PREFIX . "user set t_access_token ='" . $access_token . "',t_openkey = '" . $openkey . "',t_openid = '" . $openid . "', login_ip = '" . get_client_ip() . "',login_time= " . get_gmtime() . ",group_id=" . intval($user_data['group_id']) . " where id =" . $user_data['id']);
                $GLOBALS['db']->query("update " . DB_PREFIX . "deal_cart set user_id = " . intval($user_data['id']) . " where session_id = '" . es_session::id() . "'");
                $result['user_pwd'] = $user_data['user_pwd'];
                $result['uid'] = $user_data['id'];
                $result['email'] = $user_data['email'];
                $result['user_avatar'] = get_abs_img_root(get_muser_avatar($user_data['id'], "big"));
                $name = $user_data['user_name'];
                $result['resulttype'] = 1;
            }
        } else {
            $result['email'] = "";
            $result['user_pwd'] = md5(get_gmtime());
            $result['user_name'] = $name;
            $result['t_access_token'] = $access_token;
            $result['t_openkey'] = $openkey;
            $result['t_openid'] = $openid;
            $result['tencent_id'] = $name;
            $result['uid'] = bind_add_user($result);
            if ($result['uid'] > 0) {
                $result['user_avatar'] = '';
                $result['resulttype'] = 1;
            } else {
                $result['resulttype'] = -1;
            }
        }
    }
    $result['openid'] = $openid;
    $result['openkey'] = $openkey;
    $result['access_token'] = $access_token;
    $result['tencent_id'] = $name;
    $result['user_name'] = $name;
    $result['act'] = "synclogin";
    $result['login_type'] = "Tencent";
    output($result);
}
 public function send_message($data)
 {
     require_once APP_ROOT_PATH . 'system/api_login/Tencent/Tencent.php';
     OAuth::init($this->api['config']['app_key'], $this->api['config']['app_secret']);
     $uid = intval($GLOBALS['user_info']['id']);
     $udata = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where id = " . $uid);
     es_session::set("t_access_token", $udata['t_access_token']);
     es_session::set("t_openid", $udata['t_openid']);
     es_session::set("t_openkey", $udata['t_openkey']);
     if (es_session::get("t_access_token") || es_session::get("t_openid") && es_session::get("t_openkey")) {
         if (!empty($data['img'])) {
             $params = array('content' => $data['content'], 'clientip' => get_client_ip(), 'format' => 'json');
             $multi = array('pic' => $data['img']);
             $r = Tencent::api('t/add_pic', $params, 'POST', $multi);
         } else {
             $params = array('content' => $data['content'], 'clientip' => get_client_ip(), 'format' => 'json');
             $r = Tencent::api('t/add', $params, 'POST');
         }
         $msg = json_decode($r, true);
         if (intval($msg['errcode']) == 0) {
             $result['status'] = true;
             $result['msg'] = "success";
             ajax_return($result);
         } else {
             $result['status'] = false;
             $result['msg'] = "腾讯微博" . $msg['msg'];
             ajax_return($result);
         }
     }
 }
Beispiel #8
0
 public static function oauthRoute($type)
 {
     global $kekezu, $weibo_list;
     require S_ROOT . "include/oauth/config.php";
     if ($type === 'sina') {
         require S_ROOT . "include/oauth/sina/saetv2.ex.class.php";
         $o = new SaeTOAuthV2(WB_AKEY, WB_SKEY);
         $code_url = $o->getAuthorizeURL(WB_CALLBACK_URL);
     }
     if ($type === 'qq') {
         require S_ROOT . "include/oauth/qq/qqConnectAPI.php";
         $qqConnectAPI = new QC();
         $qqConnectAPI->qq_login();
         die;
     }
     if ($type === 'ten') {
         require S_ROOT . "include/oauth/ten/Tencent.php";
         OAuth::init(TEN_AKEY, TEN_SKEY);
         Tencent::$debug = false;
         $code_url = OAuth::getAuthorizeURL(TEN_CALLBACK_URL);
     }
     if ($type === 'renren') {
         require S_ROOT . "include/oauth/renren/rennclient/RennClient.php";
         $rennClient = new RennClient(APP_KEY, APP_SECRET);
         $state = uniqid('renren_', true);
         $_SESSION['renren_state'] = $state;
         $code_url = $rennClient->getAuthorizeURL(CALLBACK_URL, 'code', $state);
     }
     if ($type === 'douban') {
         require S_ROOT . 'include/oauth/douban/douban.php';
         $douBan = new doubanPHP(DB_APIKEY, DB_SECRET);
         $code_url = $douBan->login_url(DB_CALLBACK_URL, DB_SCOPE);
     }
     header("location:" . $code_url);
 }
Beispiel #9
0
<?php

session_start();
require_once "functions.php";
$_SESSION['user_rollno'] = "CS13B027";
redirectTo("afterlogin.php");
require 'oauth/oauth_config.php';
require 'oauth/oauth.php';
$oauth = new OAuth();
$oauth->init();
if ($oauth->authCode) {
    $_SESSION['authcode'] = $oauth->authCode;
}
if ($oauth->user['loggedIn']) {
    $_SESSION['user_rollno'] = $oauth->user['username'];
    $connectionObject = getConnection();
    $resultObject = queryDB($connectionObject, "SELECT rollno FROM userinfo where rollno = '{$_SESSION['user_rollno']}' ");
    if (!$resultObject->num_rows) {
        queryDB($connectionObject, "INSERT INTO userinfo (rollno, count) VALUES ('{$_SESSION['user_rollno']}',1)");
        redirectTo("updateprofile.php?firsttime=1");
    }
    $connectionObject->close();
    // print_r($_SESSION);
    redirectTo("afterlogin.php");
} else {
    echo "<a href='{$oauth->signinURL}'>Sign In</a> ";
}
/*
 *
 * $connection = mysql_connect($WEBHOST,$USER,$PASSWORD);
 * if(!$connection){
Beispiel #10
0
<?php

/**
 * 此为PHP-SDK 2.0
 */
require_once BASE_DATA_PATH . DS . 'api' . DS . 'snsapi' . DS . 'qqweibo' . DS . 'tencent.php';
require_once BASE_DATA_PATH . DS . 'api' . DS . 'snsapi' . DS . 'qqweibo' . DS . 'config.php';
OAuth::init($client_id, $client_secret);
Tencent::$debug = $debug;
if ($_GET['code']) {
    //已获得code
    $code = $_GET['code'];
    $openid = $_GET['openid'];
    $openkey = $_GET['openkey'];
    //获取授权token
    $url = OAuth::getAccessToken($code, $callback);
    $r = Http::request($url);
    parse_str($r, $out);
    //存储授权数据
    if ($out['access_token']) {
        $_SESSION['qqweibo']['t_access_token'] = $out['access_token'];
        $_SESSION['qqweibo']['t_expire_in'] = $out['expires_in'];
        $_SESSION['qqweibo']['t_refresh_token'] = $out['refresh_token'];
        $_SESSION['qqweibo']['t_uname'] = $out['name'];
        $_SESSION['qqweibo']['t_code'] = $code;
        $_SESSION['qqweibo']['t_openid'] = $openid;
        //OpenID可以唯一标识一个用户。在同一个应用下,同一个QQ号码的OpenID是相同的;但在不同应用下,同一个QQ号码可能有不同的OpenID
        $_SESSION['qqweibo']['t_openkey'] = $openkey;
        //OpenKey是与OpenID对应的用户key(用户在第三方应用的腾讯登录态),是验证OpenID身份的验证密钥,大多数API的访问,都需要同时具备OpenID和OpenKey的信息,其有效期为2小时
        //验证授权
        $r = OAuth::checkOAuthValid();
Beispiel #11
0
 public function callback()
 {
     OAuth::init($this->api['config']['app_key'], $this->api['config']['app_secret']);
     Tencent::$debug = $debug;
     $callback = SITE_DOMAIN . APP_ROOT . "/api_callback.php?c=Tencent";
     if (es_session::is_set('t_access_token') || es_session::is_set('t_openid') && es_session::is_set('t_openkey')) {
         //用户已授权
         //echo '<pre><h3>已授权</h3>用户信息:<br>';
         //获取用户信息
         $r = Tencent::api('user/info');
         $json_data = json_decode($r, true);
         //print_r($json_data);
         // echo '</pre>';
     } else {
         if ($_GET['code']) {
             //已获得code
             $code = $_GET['code'];
             $openid = $_GET['openid'];
             $openkey = $_GET['openkey'];
             //获取授权token
             $url = OAuth::getAccessToken($code, $callback);
             $r = Http::request($url);
             parse_str($r, $out);
             //存储授权数据
             if ($out['access_token']) {
                 es_session::set('t_access_token', $out['access_token']);
                 es_session::set('refresh_token', $out['refresh_token']);
                 es_session::set('expires_in', $out['expires_in']);
                 es_session::set('t_code', $code);
                 es_session::set('t_openid', $openid);
                 es_session::set('t_openkey', $openkey);
                 //验证授权
                 $r = OAuth::checkOAuthValid();
                 if ($r) {
                     app_redirect($callback);
                     //刷新页面
                 } else {
                     exit('<h3>授权失败,请重试</h3>');
                 }
             } else {
                 exit($r);
             }
         } else {
             //获取授权code
             if ($_GET['openid'] && $_GET['openkey']) {
                 //应用频道
                 s_session::set('t_openid', $_GET['openid']);
                 es_session::set('t_openkey', $_GET['openkey']);
                 //验证授权
                 $r = OAuth::checkOAuthValid();
                 if ($r) {
                     app_redirect($callback);
                     //刷新页面
                 } else {
                     exit('<h3>授权失败,请重试</h3>');
                 }
             } else {
                 $url = OAuth::getAuthorizeURL($callback);
                 app_redirect($url);
             }
         }
     }
     if ($json_data['msg'] != "ok") {
         echo '<pre><h3>出错了</h3><pre>';
         die;
     }
     $is_bind = intval($_REQUEST['is_bind']);
     $tencent_id = $json_data['data']['openid'];
     $msg['field'] = 'tencent_id';
     $msg['id'] = $tencent_id;
     $msg['name'] = $json_data['data']['name'];
     es_session::set("api_user_info", $msg);
     $user_data = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where tencent_id = '" . $tencent_id . "' and tencent_id <> ''");
     if ($user_data) {
         $user_current_group = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_group where id = " . intval($user_data['group_id']));
         $user_group = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_group where score <=" . intval($user_data['score']) . " order by score desc");
         if ($user_current_group['score'] < $user_group['score']) {
             $user_data['group_id'] = intval($user_group['id']);
         }
         //$GLOBALS['db']->query("update ".DB_PREFIX."user set tencent_app_key ='".$last_key['oauth_token']."',tencent_app_secret = '".$last_key['oauth_token_secret']."', login_ip = '".get_client_ip()."',login_time= ".TIME_UTC.",group_id=".intval($user_data['group_id'])." where id =".$user_data['id']);
         //$GLOBALS['db']->query("update ".DB_PREFIX."deal_cart set user_id = ".intval($user_data['id'])." where session_id = '".es_session::id()."'");
         es_session::delete("api_user_info");
         if ($is_bind) {
             if (intval($user_data['id']) != intval($GLOBALS['user_info']['id'])) {
                 showErr("该帐号已经被别的会员绑定过,请直接用帐号登录", 0, url("shop", "uc_center#setweibo"));
             } else {
                 es_session::set("user_info", $user_data);
                 app_redirect(url("shop", "uc_center#setweibo"));
             }
         } else {
             es_session::set("user_info", $user_data);
             app_recirect_preview();
         }
     } elseif ($is_bind == 1 && $GLOBALS['user_info']) {
         //当有用户身份且要求绑定时
         $GLOBALS['db']->query("update " . DB_PREFIX . "user set tencent_id= '" . $tencent_id . "' where id =" . $GLOBALS['user_info']['id']);
         app_redirect(url("index", "uc_center#setweibo"));
     } else {
         $this->create_user();
         //app_redirect(url("index","user#api_login"));
         app_recirect_preview();
     }
 }