function showUser($keys = array()) { $qq_user = QQOauth\get_user_info($this->appid, $this->secid, $keys['oauth_token'], $keys['oauth_token_secret'], $keys['openid']); if ($qq_user && $qq_user['ret'] == 0) { $_keys = DengLuTong::getKeys(); $user = array('id' => $_keys['openid'], 'name' => $qq_user['nickname'], 'screen_name' => $qq_user['nickname'], 'desc' => '', 'url' => '', 'img' => $qq_user['figureurl_1'], 'gender' => '', 'email' => '', 'location' => ''); return $user; } return FALSE; }
function getAccessToken($args = array()) { if (!empty($args['oauth_token']) && !empty($args['oauth_token_secret'])) { $keys = $this->oauth->getAccessToken(array('key' => $args['oauth_token'], 'secret' => $args['oauth_token_secret'])); if (isset($keys['douban_user_id'])) { DengLuTong::setKeys($keys); return $keys; } else { return FALSE; } } }
function getAccessToken($args = array()) { if (!empty($args['oauth_token']) && !empty($args['oauth_token_secret'])) { $this->oauth = new NetEaseOauth($this->appid, $this->secid, $args['oauth_token'], $args['oauth_token_secret']); $keys = $this->oauth->oauth->getAccessToken($args['oauth_token']); if (isset($keys['oauth_token'])) { DengLuTong::setKeys($keys); return $keys; } else { return FALSE; } } }
function getAccessToken($args = array()) { if (!empty($args['oauth_token']) && !empty($args['oauth_token_secret'])) { $this->oauth = new TianYaOauth($this->appid, $this->secid, $args['oauth_token'], $args['oauth_token_secret']); $keys = $this->oauth->getAccessToken($args['oauth_verifier']); if (isset($keys['oauth_token'])) { DengLuTong::setKeys($keys); return $keys; } else { Log::getInstance()->tofile(__CLASS__ . ' -> ' . __METHOD__ . "\r\nError : " . serialize($keys)); return FALSE; } } }
function getAccessToken($args = array()) { if (!empty($args['oauth_token']) && !empty($args['oauth_token_secret'])) { $this->oauth->token->key = $args['oauth_token']; $this->oauth->token->secret = $args['oauth_token_secret']; $keys = $this->oauth->getAccessToken($args['oauth_verifier']); if (isset($keys['oauth_token'])) { DengLuTong::setKeys($keys); return $keys; } else { return FALSE; } } }
function getAccessToken($args = array()) { if (!$args['code']) { return FALSE; } $params = array('client_id' => $this->appid, 'client_secret' => $this->secid, 'redirect_uri' => urldecode($this->callback), 'code' => $args['code'], 'grant_type' => 'authorization_code'); $url = "https://oauth.live.com/token"; $file = $this->oauth->curl($url, $params); $keys = json_decode($file, true); if ($keys) { DengLuTong::setKeys($keys); return $keys; } else { return FALSE; } }
function getAccessToken($args = array()) { $url = "https://graph.renren.com/oauth/token?client_id=" . $this->appid . "&client_secret=" . $this->secid . "&redirect_uri=" . $this->callback . "&grant_type=authorization_code&code=" . $args['code']; $file = $this->file_get_contents($url); $json = json_decode($file); if ($json) { $url = "https://graph.renren.com/renren_api/session_key?oauth_token=" . $json->access_token; $file = $this->file_get_contents($url); $info = json_decode($file, true); if ($info) { $keys = array('session_secret' => $info['renren_token']['session_secret'], 'expires_in' => $info['renren_token']['expires_in'], 'session_key' => $info['renren_token']['session_key'], 'oauth_token' => $info['oauth_token'], 'user_id' => $info['user']['id']); DengLuTong::setKeys($keys); return $info; } return FALSE; } else { return FALSE; } }
function getAccessToken($args = array()) { if (isset($_GET['session_key'])) { $session_key = $_GET['session_key']; setcookie("kx_connect_session_key", $session_key, time() + 3600 * 6); } else { $session_key = $_COOKIE["kx_connect_session_key"]; } if ($session_key) { $keys['session_key'] = $session_key; DengLuTong::setKeys($keys); return $session_key; } else { return FALSE; } // $url = "http://www.kaixin001.com/oauth2/token.php"; // $url.="?client_id=" .$this->appid. // "&client_secret=" . $this->secid . // "&grant_type=authorization_code". // "&code=".$args['code']. // "&redirect_uri=".$this->callback; // $params=array( // 'client_id'=>$this->appid, // 'client_secret'=>$this->secid, // 'grant_type'=>'authorization_code', // 'code'=>$args['code'], // 'redirect_uri'=>$this->callback, // ); // $string=$this->buildQuery($params); // $file = $this->file_get_contents ( $url ,FALSE,$string); // $keys = json_decode ( $file,TRUE ); // print_r($keys);die; // if($keys) // { // $_SESSION['keys']=$keys; // return $keys; // }else{ // return FALSE; // } }
/** * 登录过程 * @param string $vendor 服务商 * @param array $args */ function callback($vendor, $args = array()) { $keys = DengLuTong::getKeys(); $args = array(); //各服务商返回的参数各不相同,故统一处理。 !empty($keys['oauth_token_secret']) ? $args['oauth_token_secret'] = $keys['oauth_token_secret'] : ''; isset($_GET['oauth_token']) ? $args['oauth_token'] = $_GET['oauth_token'] : ''; isset($_GET['oauth_verifier']) ? $args['oauth_verifier'] = $_GET['oauth_verifier'] : ''; isset($_GET['openid']) ? $args['openid'] = $_GET['openid'] : ''; isset($_GET['oauth_vericode']) ? $args['oauth_vericode'] = $_GET['oauth_vericode'] : ''; isset($_GET['code']) ? $args['code'] = $_GET['code'] : ''; // $args=array ( // 'oauth_token' => isset( $_GET['oauth_token'] ) ? $_GET['oauth_token'] : '' , // 'oauth_token_secret' => !empty($keys['oauth_token_secret'])?$keys['oauth_token_secret']:'', // 'oauth_verifier' => isset( $_GET['oauth_verifier'] ) ? $_GET['oauth_verifier'] : '', // 'openid' => isset( $_GET['openid'] ) ? $_GET['openid'] : '' , // 'oauth_vericode' => isset( $_GET['oauth_vericode'] ) ? $_GET['oauth_vericode'] : '' , // 'code' => isset( $_GET['code'] ) ? $_GET['code'] : '' , // ); if ($args) { $user = $this->vendor->login($args); if ($user) { $user['vendor'] = $vendor; $this->setUser($user); } return $user; } else { return FALSE; } }
/** * 保存第三方信息 * @param string $uid 本地用户ID */ function processBind($uid) { if (!$uid) { return FALSE; } $user = DengLuTong::getUser(); $user['dlt_user_id'] = $user['id']; unset($user['id']); $user['user_id'] = $uid; $user['keys'] = serialize(DengLuTong::getKeys()); $user['name'] = addslashes(trim($user['name'])); $user['screen_name'] = addslashes(trim($user['screen_name'])); $user['desc'] = addslashes(trim($user['desc'])); $lastid = $this->db->insert($this->dbconfig['tablename'], $user); if ($lastid) { DengLuTong::clearSession(); $this->success(); } else { $this->error(); } }
<?php use DengLuTong\Exception; use DengLuTong\lib\Config; use DengLuTong\DengLuTong; require_once 'DengLuTong/DengLuTong.php'; //require_once 'DengLuTong/DLTConfig.php'; $act = empty($_GET['dltact']) ? 'showBars' : $_GET['dltact']; $vendor = empty($_GET['vendor']) ? '' : 'Vendor_' . $_GET['vendor']; $dlt = DengLuTong::getInstance($vendor); if (!method_exists($dlt, $act)) { throw new Exception('Method not exists.'); } $return = $dlt->{$act}($vendor); switch ($act) { case 'callback': echo '<script>window.opener.location.href="' . Config::getInstance()->BaseUrl . '?dltact=bind";window.close();</script>'; die; case 'unbind': $url = empty($_GET['url']) ? './' : $_GET['url']; header('Location: ' . $url); die; }
<?php require_once 'DengLuTong/DengLuTong.php'; use DengLuTong\lib\Db\Db; use DengLuTong\DengLuTong; $DLTUser = DengLuTong::getUser(); $dlt = DengLuTong::getInstance(); if ($_SERVER['REQUEST_METHOD'] == 'POST') { $name = addslashes($_POST['name']); $pass = addslashes($_POST['pass']); $email = addslashes($_POST['email']); $db = Db::getInstance(); $sql = "select * from user where user_name='{$name}'"; $result = $db->select($sql); if (!$result) { $data['user_name'] = $name; $data['pass'] = $pass; $data['email'] = $email; if ($DLTUser) { $data['pass'] = rand(1, 100); } $uid = $db->insert('user', $data); if ($uid) { echo '注册成功,请登录'; //如果第三方用户已登录,先进行本地登录,然后绑定 if ($DLTUser) { if ($dlt->localLogin($uid)) { $dlt->bind(); } } } else {
<?php require_once 'DengLuTong/DengLuTong.php'; use DengLuTong\DengLuTong; use DengLuTong\lib\Config; if (empty($_SESSION['user'])) { header('Location: login.php'); die; } DengLuTong::clearSession(); $user = $_SESSION['user']; echo 'Hi, ' . $user['name'] . ' Welcome.'; $dlt = DengLuTong::getInstance('', 'Local'); $binded = $dlt->getBinded($user['id']); echo '<div>'; foreach ($binded as $bind) { echo '<p>' . $bind['name'] . ':' . ($bind['dlt_user'] ? $bind['dlt_user'] . ' <a href="DLTClient.php?dltact=unbind&vendor=' . $bind['site'] . '">解除绑定</a>' : '<a href="javascript:DLTWinOpen(\'' . Config::getInstance()->LoginUrl . $bind['site'] . '\')">绑定</a>') . '</p>'; } echo '</div>'; ?> <a href='logout.php'>logout</a> <script> function DLTWinOpen(url,id,iWidth,iHeight) { var iTop = (screen.height-30-iHeight)/2; //获得窗口的垂直位置; var iLeft = (screen.width-10-iWidth)/2; //获得窗口的水平位置; //DLTWin=window.open(url,id,'height='+iHeight+',innerHeight='+iHeight+',width='+iWidth+',innerWidth='+iWidth+',top='+iTop+',left='+iLeft+',toolbar=no,menubar=no,scrollbars=auto,resizeable=no,location=no,status=no'); //chrome不支持showModalDialog弹出模态窗口 DLTWin=window.showModalDialog(url,null,"dialogWidth="+iWidth+"px;dialogHeight="+iHeight+"px;dialogTop="+iTop+"px;dialogLeft="+iLeft+"px"); }
$result = $db->select($sql); if (!$result) { echo '登录失败'; } else { echo '已登录'; $_SESSION['user'] = array('id' => $result[0]['id'], 'name' => $result[0]['user_name']); //如果第三方网站已登录,则进行绑定 if (DengLuTong::getUser()) { DengLuTong::bind(); } header('Location: index.php'); die; } } ?> <form method="post" action=""> name:<input type='text' name='name'> pass:<input type='text' name='pass'> <p></p> <input type="submit" value="submit"> </form> <?php if (!DengLuTong::getUser()) { DengLuTong::_showBars(); } else { $user = DengLuTong::getUser(); echo 'Hi, ' . $user['screen_name'] . ' ,如果已有本站帐号请登录,或注册。'; } ?> <a href='reg.php'>reg</a> <a href='logout.php'>logout</a>