function tencentJMP__()
{
    import('/library/OAuth.php');
    import('/library/tencentoauth.php');
    global $cfg_tencent;
    $type = 'tencent';
    $o = new MBOpenTOAuth($cfg_tencent['key'], $cfg_tencent['secret']);
    $keys = $o->getRequestToken(callbackUrl($type));
    $authorizeURL = $o->getAuthorizeURL($keys['oauth_token'], false, '');
    $_SESSION['tencent_keys'] = $keys;
    header("Location:{$authorizeURL}");
}
Beispiel #2
0
 function callback()
 {
     //var_dump($_REQUEST);
     //这个key就是这个用户的令牌,很NB,要好好保存
     $callback = site_url() . '/binding/tqq/callback';
     //var_dump($this->session);
     $o = new MBOpenTOAuth(MB_AKEY, MB_SKEY, $this->session->userdata('oauth_token'), $this->session->userdata('oauth_token_secret'));
     $result = $o->getAccessToken($_REQUEST['oauth_verifier']);
     //获取ACCESSTOKEN
     //var_dump($result);
     $sns_oauth_token = $result['oauth_token'];
     $sns_oauth_token_secret = $result['oauth_token_secret'];
     $sns_uid = $result['name'];
     //让人吃金啊
     if (empty($sns_uid)) {
         throw new Exception('oauth fail, havnt got getAccessToken()');
     }
     //获取用户信息
     //$c = new WeiboClient( WB_AKEY , WB_SKEY , $sns_oauth_token , $sns_oauth_token_secret);
     $c = new MBApiClient(MB_AKEY, MB_SKEY, $sns_oauth_token, $sns_oauth_token_secret);
     $me = $c->getUserInfo();
     $me = $me['data'];
     //把资料准备好之后,剩下的就交给父类里的模版方法了!
     parent::post_login(UserManager::sns_website_tqq, $sns_uid, $sns_oauth_token, $sns_oauth_token_secret, $me['name']);
     /*
     $binding = $this->usermanager->get_binding_by_sns_uid(UserManager::sns_website_tqq, $sns_uid);
     if(empty($binding))
     {
     	//初次登录用户
     	//创建用户(同时创建sns_binding)
     	$user = $this->usermanager->create_user(UserManager::sns_website_tqq, $sns_uid, $sns_oauth_token, $sns_oauth_token_secret, $me['name']);
     	//把新创建的用户放到ci->weixiao里
     	$this->weixiao->set_user_token($user->user_token);
     	$cur_user = $this->weixiao->get_cur_user();
     	if(empty($cur_user)) throw new Exception("something strange happens, cant get user just login.");
     	$data = array('user'=>$cur_user);
     	$this->load->view('binding/first_binding', $data);
     }
     else {
     	//老用户
     	//TODO 初次登录进入binding/first_binding,否则关闭弹出窗口,刷新父页面
     	$user = $this->usermanager->get_by_id($binding->user_id);
     	//把新创建的用户放到ci->weixiao里
     	$this->weixiao->set_user_token($user->user_token);
     	$cur_user = $this->weixiao->get_cur_user();
     	if(empty($cur_user)) throw new Exception("something strange happens, cant get user just login.");
     	$data = array('user'=>$cur_user);
     	$this->load->view('binding/not_first_binding', $data);
     }
     */
 }
    /**
     * 这个数据显示一个页面,它自动会转入腾讯授权的页面
     */
    function showTencentAuth()
    {
        $o = new MBOpenTOAuth(MB_AKEY, MB_SKEY);
        $u =& JFactory::getURI();
        $p = $u->base();
        $keys = $o->getRequestToken($p . '/index.php?option=com_weibo&task=tencentcallback');
        //这是回调的URL
        $aurl = $o->getAuthorizeURL($keys['oauth_token'], false, '');
        $_SESSION['keys'] = $keys;
        ?>
<script>
document.location.href="<?php 
        echo $aurl;
        ?>
"
</script>
		<?php 
    }
/**
 * 此函数,供Callback处调用,如果返回false,认证失败,否则返回以下哈希表:
 *   last_key  ->  callback得到的last_key
 *   oauth_token ->  上述lastkey中的oauth_token
 *   oauth_token_secret -> 上述lastkey中的oauth_token_secret
 *   user_id -> 用户ID
 *   user_name ->  用户昵称
 *   user_email -> 用户邮箱
 */
function AuthCallback_tencent()
{
    // 取得腾讯Auth对象
    $o = new MBOpenTOAuth(MB_AKEY, MB_SKEY, $_SESSION['keys']['oauth_token'], $_SESSION['keys']['oauth_token_secret']);
    // 获取last_key
    $last_key = $o->getAccessToken($_REQUEST['oauth_verifier']);
    if ($last_key) {
        $rtn = array();
        $rtn['last_key'] = $last_key;
        $rtn['oauth_token'] = $last_key['oauth_token'];
        $rtn['oauth_token_secret'] = $last_key['oauth_token_secret'];
        $rtn['user_id'] = $last_key['name'];
        $client = new MBApiClient(MB_AKEY, MB_SKEY, $last_key['oauth_token'], $last_key['oauth_token_secret']);
        $user = $client->getUserInfo();
        $rtn['user_name'] = $user['data']['nick'];
        $rtn['user_email'] = $user['data']['email'];
        return $rtn;
    } else {
        return $last_key;
    }
}
/**
 * 当腾讯授权正常完成时,将转到task=tencentcallback回调,这时调用这个函数
 */
function tencentCallback()
{
    // 取得腾讯Auth对象
    $o = new MBOpenTOAuth(MB_AKEY, MB_SKEY, $_SESSION['keys']['oauth_token'], $_SESSION['keys']['oauth_token_secret']);
    // 获取last_key
    $last_key = $o->getAccessToken($_REQUEST['oauth_verifier']);
    if ($last_key) {
        // 如果成功取得last_key
        $db =& JFactory::getDBO();
        // 先将数据库中原有数据无论有无均删除
        $sql = "DELETE FROM #__weibo_auth WHERE type='tencent'";
        $db->setQuery($sql);
        $db->Query();
        // 将取得的last_key写入数据库中
        $sql = "INSERT INTO #__weibo_auth(id,oauth_token,oauth_token_secret,name,type ) VALUES ('1','{$last_key['oauth_token']}','{$last_key['oauth_token_secret']}','{$last_key['name']}','tencent') ";
        $db->setQuery($sql);
        $db->Query();
        // 显示已经成功获得授权的页面
        HTML_weibo::finishedTencentAuth($last_key);
    } else {
        // 如果未成功取得last_key,显示出错的页面
        HTML_weibo::errorTencentAuth();
    }
}
Beispiel #6
0
<?php

if (!defined('IN_ET')) {
    exit;
}
session_start();
include_once "oauth.php";
include_once "qqweibo/config.inc.php";
include_once "qqweibo/opent.class.php";
$qqwb = new MBOpenTOAuth(MB_AKEY, MB_SKEY, $_SESSION['qqkeys']['oauth_token'], $_SESSION['qqkeys']['oauth_token_secret']);
$last_key = $qqwb->getAccessToken($_REQUEST['oauth_verifier']);
$_SESSION['qqlast_key'] = $last_key;
unset($_SESSION['qqkeys']);
unset($_SESSION['qqaurl']);
if ($last_key['oauth_token']) {
    $bind = D('Weibobind')->where("qq_uid='{$last_key['name']}'")->find();
    if (!$bind) {
        Cookie::set('qqloginauth', $last_key['name']);
        header("location: " . SITE_URL . "/register");
    } else {
        $user = D('Users')->where("user_id='{$bind['uid']}'")->find();
        Cookie::set('authcookie', authcode("{$user['user_name']}\t{$user['user_id']}", 'ENCODE'), 31536000);
        Cookie::set('setok', '通过腾讯微博帐号登陆成功!');
        header("location: " . SITE_URL . '/' . $user['user_name']);
    }
} else {
    echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>提示信息</title><style>body{font-size:12px;margin:0 auto}.box{text-align:center;width:250px;height:42px;background:url("' . ET_URL . '/Plugin/weibologin/images/tip.gif") no-repeat;color:#000000;margin:200px auto;line-height:38px;color:#ffffff}a {color:#fff}</style></head><body><div class="box">很抱歉,腾讯认证失败!<a href="' . SITE_URL . '">返回主页</a></div></body></html>';
}
Beispiel #7
0
<?php

@header('Content-Type:text/html;charset=utf-8');
session_start();
require_once 'config.php';
require_once 'oauth.php';
require_once 'opent.php';
$o = new MBOpenTOAuth(MB_AKEY, MB_SKEY);
$keys = $o->getRequestToken('http://pg.app.yiyiee.com/callback.php');
//这里填上你的回调URL
$aurl = $o->getAuthorizeURL($keys['oauth_token'], false, '');
$_SESSION['keys'] = $keys;
?>
<a href="<?php 
echo $aurl;
?>
">用OAUTH授权登录</a>
Beispiel #8
0
 function page()
 {
     $type = $_GET['t'] ? $_GET['t'] : 'sina';
     $action = $_REQUEST['act'];
     $user = Action::$login_user;
     $weibo = D('weibobind');
     $bind = $weibo->where("uid='{$user['user_id']}'")->find();
     if ($action == 'sinasave') {
         $sinatb = intval($_POST['sinatb']);
         $weibo->where("uid='{$user['user_id']}'")->setField('sendtosina', $sinatb);
         Cookie::set('setok', '新浪帐号设置成功');
         header('location: ' . SITE_URL . '/p/weibologin?t=sina');
         exit;
     }
     if ($action == 'qqsave') {
         $qqtb = intval($_POST['qqtb']);
         $weibo->where("uid='{$user['user_id']}'")->setField('sendtoqq', $qqtb);
         Cookie::set('setok', '腾讯帐号设置成功');
         header('location: ' . SITE_URL . '/p/weibologin?t=qq');
         exit;
     }
     if ($action == 'unbindsina') {
         $weibo->where("uid='{$user['user_id']}'")->setField(array('sina_uid', 'sina_token', 'sina_tsecret', 'sendtosina'), '0');
         Cookie::set('setok', '新浪帐号解绑成功');
         header('location: ' . SITE_URL . '/p/weibologin?t=sina');
         exit;
     }
     if ($action == 'unbindqq') {
         $weibo->where("uid='{$user['user_id']}'")->setField(array('qq_uid', 'qq_token', 'qq_tsecret', 'sendtoqq'), '0');
         Cookie::set('setok', '腾讯帐号解绑成功');
         header('location: ' . SITE_URL . '/p/weibologin?t=qq');
         exit;
     }
     if ($action == 'bindsina') {
         if (!$bind['sina_uid']) {
             $sinawb = new WeiboOAuth(WB_AKEY, WB_SKEY, $_SESSION['keys']['oauth_token'], $_SESSION['keys']['oauth_token_secret']);
             $last_key = $sinawb->getAccessToken($_REQUEST['oauth_verifier']);
             if ($last_key['oauth_token']) {
                 $canbind = $weibo->where("sina_uid='{$last_key['user_id']}'")->find();
                 if ($canbind) {
                     Cookie::set('setok', '很抱歉,该新浪帐号已经被其他帐号绑定');
                     header('location: ' . SITE_URL . '/p/weibologin?t=sina');
                     exit;
                 }
                 if ($bind) {
                     $weibo->where("uid='{$user['user_id']}'")->setField(array('sina_uid', 'sina_token', 'sina_tsecret'), array($last_key['user_id'], $last_key['oauth_token'], $last_key['oauth_token_secret']));
                 } else {
                     $insert['uid'] = $user['user_id'];
                     $insert['sina_uid'] = $last_key['user_id'];
                     $insert['sina_token'] = $last_key['oauth_token'];
                     $insert['sina_tsecret'] = $last_key['oauth_token_secret'];
                     $weibo->add($insert);
                 }
                 Cookie::set('setok', '新浪帐号绑定成功');
             } else {
                 Cookie::set('setok', '新浪帐号绑定失败');
             }
         }
         header('location: ' . SITE_URL . '/p/weibologin?t=sina');
         exit;
     }
     if ($action == 'bindqq') {
         if (!$bind['qq_uid']) {
             $qqwb = new MBOpenTOAuth(MB_AKEY, MB_SKEY, $_SESSION['qqkeys']['oauth_token'], $_SESSION['qqkeys']['oauth_token_secret']);
             $last_key = $qqwb->getAccessToken($_REQUEST['oauth_verifier']);
             if ($last_key['oauth_token']) {
                 $canbind = $weibo->where("qq_uid='{$last_key['name']}'")->find();
                 if ($canbind) {
                     Cookie::set('setok', '很抱歉,该腾讯帐号已经被其他帐号绑定');
                     header('location: ' . SITE_URL . '/p/weibologin?t=qq');
                     exit;
                 }
                 if ($bind) {
                     $weibo->where("uid='{$user['user_id']}'")->setField(array('qq_uid', 'qq_token', 'qq_tsecret'), array($last_key['name'], $last_key['oauth_token'], $last_key['oauth_token_secret']));
                 } else {
                     $insert['uid'] = $user['user_id'];
                     $insert['qq_uid'] = $last_key['name'];
                     $insert['qq_token'] = $last_key['oauth_token'];
                     $insert['qq_tsecret'] = $last_key['oauth_token_secret'];
                     $weibo->add($insert);
                 }
                 Cookie::set('setok', '腾讯帐号绑定成功');
             } else {
                 Cookie::set('setok', '腾讯帐号绑定失败');
             }
         }
         header('location: ' . SITE_URL . '/p/weibologin?t=qq');
         exit;
     }
     $result .= '<div class="friends" style="height:400px">';
     if ($type == 'sina') {
         $result .= '<div class="indexh"><div class="tabon"><a href="' . SITE_URL . '/p/weibologin?t=sina">新浪帐号</a></div><div class="taboff"><a href="' . SITE_URL . '/p/weibologin?t=qq">腾讯帐号</a></div></div>';
     } else {
         $result .= '<div class="indexh"><div class="taboff"><a href="' . SITE_URL . '/p/weibologin?t=sina">新浪帐号</a></div><div class="tabon"><a href="' . SITE_URL . '/p/weibologin?t=qq">腾讯帐号</a></div></div>';
     }
     $result .= '<div style="ine-height:200%;padding:0 10px;">';
     if ($type == 'sina') {
         if ($bind['sina_uid']) {
             $result .= '<div style="float:right"><img src="' . ET_URL . '/Plugin/weibologin/images/sinalogo.jpg"></div><div class="clearline"></div>
             <form action="' . SITE_URL . '/p/weibologin" method="post">
             <table style="margin:10px 0 0 10px;font-size:12px;text-indent:10px" width="100%">
             <tr height="60px">
             <td width="150px" bgcolor="#f3f3f3">绑定新浪微博帐号:</td>
             <td bgcolor="#ffffde">' . $bind['sina_uid'] . '</td>';
             $result .= '</tr><tr height="60px"><td bgcolor="#f3f3f3">是否同步发表微博:</td>';
             if ($bind['sendtosina']) {
                 $result .= '<td bgcolor="#ffffde"><input type="radio" name="sinatb" value="1" checked> 是&nbsp;&nbsp;&nbsp; <input type="radio" name="sinatb" value="0"> 否</td>';
             } else {
                 $result .= '<td bgcolor="#ffffde"><input type="radio" name="sinatb" value="1"> 是&nbsp;&nbsp;&nbsp; <input type="radio" name="sinatb" value="0" checked> 否</td>';
             }
             $result .= '</tr>
             <tr height="120px">
                 <td> </td>
                 <td><input type="hidden" name="act" value="sinasave">
                 <input type="submit" class="button1" value="提交保存">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                 <input type="button" class="button3" value="解绑帐号" onclick="if(confirm(\'是否确定要解绑新浪微博帐号?\')){window.location.href=\'' . SITE_URL . '/p/weibologin?act=unbindsina\'}">
                 </td>
             </tr>
             </table>
             </from>';
         } else {
             session_start();
             unset($_SESSION['keys']);
             $sinawb = new WeiboOAuth(WB_AKEY, WB_SKEY);
             $keys = $sinawb->getRequestToken();
             $aurl = $sinawb->getAuthorizeURL($keys['oauth_token'], false, SITE_URL . '/p/weibologin?act=bindsina');
             $_SESSION['keys'] = $keys;
             $result .= '<div style="text-align:center;width:100%;margin-top:80px;font-size:14px">
             <img src="' . ET_URL . '/Plugin/weibologin/images/sinalogo.jpg"><br/><br/><a href="' . $aurl . '">您还未绑定新浪帐号,点击绑定!</a>
             </div>';
         }
     } else {
         if ($type == 'qq') {
             if ($bind['qq_uid']) {
                 $result .= '<div style="float:right"><img src="' . ET_URL . '/Plugin/weibologin/images/qqlogo.jpg"></div><div class="clearline"></div>
             <form action="' . SITE_URL . '/p/weibologin" method="post">
             <table style="margin:10px 0 0 10px;font-size:12px;text-indent:10px" width="100%">
             <tr height="60px">
             <td width="150px" bgcolor="#f3f3f3">绑定腾讯微博帐号:</td>
             <td bgcolor="#ffffde">' . $bind['qq_uid'] . '</td>';
                 $result .= '</tr><tr height="60px"><td bgcolor="#f3f3f3">是否同步发表微博:</td>';
                 if ($bind['sendtoqq']) {
                     $result .= '<td bgcolor="#ffffde"><input type="radio" name="qqtb" value="1" checked> 是&nbsp;&nbsp;&nbsp; <input type="radio" name="qqtb" value="0"> 否</td>';
                 } else {
                     $result .= '<td bgcolor="#ffffde"><input type="radio" name="qqtb" value="1"> 是&nbsp;&nbsp;&nbsp; <input type="radio" name="qqtb" value="0" checked> 否</td>';
                 }
                 $result .= '</tr>
             <tr height="120px">
                 <td> </td>
                 <td><input type="hidden" name="act" value="qqsave">
                 <input type="submit" class="button1" value="提交保存">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                 <input type="button" class="button3" value="解绑帐号" onclick="if(confirm(\'是否确定要解绑腾讯微博帐号?\')){window.location.href=\'' . SITE_URL . '/p/weibologin?act=unbindqq\'}">
                 </td>
             </tr>
             </table>
             </from>';
             } else {
                 session_start();
                 unset($_SESSION['qqkeys']);
                 $qqwb = new MBOpenTOAuth(MB_AKEY, MB_SKEY);
                 $keys = $qqwb->getRequestToken(SITE_URL . '/p/weibologin?act=bindqq');
                 $aurl = $qqwb->getAuthorizeURL($keys['oauth_token'], false, '');
                 $_SESSION['qqkeys'] = $keys;
                 $result .= '<div style="text-align:center;width:100%;margin-top:80px;font-size:14px">
             <img src="' . ET_URL . '/Plugin/weibologin/images/qqlogo.jpg"><br/><br/><a href="' . $aurl . '">您还未绑定腾讯帐号,点击绑定!</a>
             </div>';
             }
         }
     }
     $result .= '</div></div>';
     return $result;
 }
Beispiel #9
0
     sql_query("INSERT INTO " . DB_PREFIX . "entry VALUES ('', '{$userid}',  '{$nickname}', '{$email}', '{$url}', '{$entry}', '{$time}', '网页', '{$reply_id}','','','')");
     if ($_POST['type'] == 'm') {
         go('/m/index.php');
     } else {
         go();
     }
     break;
 case 'sina_oauth':
     $sina_oa = new WeiboOAuth(WB_AKEY, WB_SKEY, $_SESSION['sina_keys']['oauth_token'], $_SESSION['sina_keys']['oauth_token_secret']);
     $sina_last_key = $sina_oa->getAccessToken($_REQUEST['oauth_verifier']);
     $_SESSION['sina_last_key'] = $sina_last_key;
     $page = MF_URL . 'action.php?act=insert_oauth&mb=sina';
     go($page);
     break;
 case 'qq_oauth':
     $tecent_oa = new MBOpenTOAuth(MB_AKEY, MB_SKEY, $_SESSION['tecent_keys']['oauth_token'], $_SESSION['tecent_keys']['oauth_token_secret']);
     $tecent_last_key = $tecent_oa->getAccessToken($_REQUEST['oauth_verifier']);
     $_SESSION['tecent_last_key'] = $tecent_last_key;
     $page = MF_URL . 'action.php?act=insert_oauth&mb=qq';
     go($page);
     break;
 case '163_oauth':
     $wangyi_oa = new wy_WeiboOAuth(WY_AKEY, WY_SKEY, $_SESSION['wangyi_keys']['oauth_token'], $_SESSION['wangyi_keys']['oauth_token_secret']);
     $wangyi_last_key = $wangyi_oa->getAccessToken($_REQUEST['oauth_token']);
     $_SESSION['wangyi_last_key'] = $wangyi_last_key;
     $page = MF_URL . 'action.php?act=insert_oauth&mb=163';
     go($page);
     break;
 case 'insert_oauth':
     $user = sql_query('SELECT * FROM ' . DB_PREFIX . 'user WHERE username = "******"');
     $user = mysql_fetch_array($user);
Beispiel #10
0
 $microblog = unserialize($user['microblog']);
 /*$sina = unserialize($user['sina']);
   $tecent = unserialize($user['tecent']);
   $wangyi = unserialize($user['wangyi']);*/
 $xiami = $user['xiami'];
 $douban = $user['douban'];
 $photo = $user['photo'];
 //sina weibo
 $sina_o = new WeiboOAuth(WB_AKEY, WB_SKEY);
 $sina_keys = $sina_o->getRequestToken();
 $sina_callback = MF_URL . 'action.php?act=sina_oauth';
 $sina_aurl = $sina_o->getAuthorizeURL($sina_keys['oauth_token'], false, $sina_callback);
 $_SESSION['sina_keys'] = $sina_keys;
 //qq weibo
 echo '<span style="display:none;">';
 $tecent_o = new MBOpenTOAuth(MB_AKEY, MB_SKEY);
 $tecent_keys = $tecent_o->getRequestToken(MF_URL . 'action.php?act=qq_oauth');
 $tecent_aurl = $tecent_o->getAuthorizeURL($tecent_keys['oauth_token'], false, '');
 $_SESSION['tecent_keys'] = $tecent_keys;
 echo '</span>';
 //163 weibo
 echo '<span style="display:none;">';
 $wangyi_o = new wy_WeiboOAuth(WY_AKEY, WY_SKEY);
 $wangyi_keys = $wangyi_o->getRequestToken();
 $wangyi_callback = MF_URL . 'action.php?act=163_oauth';
 $wangyi_aurl = $wangyi_o->getAuthorizeURL($wangyi_keys['oauth_token'], true, $wangyi_callback);
 $_SESSION['wangyi_keys'] = $wangyi_keys;
 echo '</span>';
 //
 require_once './template/setting.php';
 break;