public function getRequestToken() { $oauthConsumer = new Zend_Oauth_Consumer($this->configParams); $token = $oauthConsumer->getRequestToken(); $_SESSION['REQUEST_TOKEN'] = serialize($token); $oauthConsumer->redirect(); }
public function adminAction() { // $this->userloginAction(); $accessCheck = $this->getRequest()->getPost(); $postUser = $accessCheck['username']; $postPw = $accessCheck['password']; $key = $accessCheck['key']; $secret = $accessCheck['secret']; $resultForm = $this->getRequest()->getParam('form'); if (empty($resultForm)) { $resultForm = 'xml'; } $query = $this->getRequest()->getParam('query'); $rootURL = str_replace('index.php/', '', Mage::getUrl()); $params = array('siteUrl' => $rootURL . 'oauth', 'requestTokenUrl' => $rootURL . 'oauth/initiate', 'accessTokenUrl' => $rootURL . 'oauth/token', 'authorizeUrl' => $rootURL . 'admin/oauth_authorize', 'consumerKey' => $key, 'consumerSecret' => $secret, 'callbackUrl' => $rootURL . 'restconnect/index/callback?query=' . $query . '&form=' . $resultForm . '&key=' . $key . '&secret=' . $secret); // Zend_Debug::dump($params); // Initiate oAuth consumer with above parameters $consumer = new Zend_Oauth_Consumer($params); // Get request token $requestToken = $consumer->getRequestToken(); $authURL = $consumer->getRedirectUrl(); //echo $authURL. "<br/>"; $tmpToken = substr(strstr($authURL, "oauth_token="), 12); //echo $tmpToken. "<br/>"; // Get session $session = Mage::getSingleton('core/session'); // Save serialized request token object in session for later use $session->setRequestToken(serialize($requestToken)); // $url = $rootURL.'/admin/oauth_authorize/confirm?oauth_token='.$tmpToken; $url = $rootURL . 'admin/oauth_authorize/confirm?oauth_token=' . $tmpToken; //echo $url; Mage::app()->getFrontController()->getResponse()->setRedirect($url); }
/** * Authenticate user by twitter OAuth * @return Zend_Auth_Result */ public function authenticate() { $config = $this->getConfig(); if (empty($config['consumerKey']) || empty($config['consumerSecret']) || empty($config['userAuthorizationUrl']) || empty($config['accessTokenUrl']) || empty($config['callbackUrl'])) { require_once 'Zend/Auth/Adapter/Exception.php'; throw new Zend_Auth_Adapter_Exception('Twitter auth configuration not specifed'); } $consumer = new Zend_Oauth_Consumer($config); $tokenRequest = $this->_getTokenRequest(); if (!empty($tokenRequest) && !empty($_GET)) { $tokenAccess = $consumer->getAccessToken($_GET, $tokenRequest); $response = $tokenAccess->getResponse(); if ($response->isError()) { //TODO:change on custom $error = 'Twitter Oauth service unavailable'; return new Zend_Auth_Result(Zend_Auth_Result::FAILURE, false, array($error)); } elseif ($response->isSuccessful()) { $parsedResponse = $this->parseResponseUrl($response->getBody()); $this->_unsetTokenRequest(); $identity = $this->_prepareIdentity($parsedResponse); return new Zend_Auth_Result(Zend_Auth_Result::SUCCESS, $identity); } } else { $tokenRequest = $consumer->getRequestToken(); $this->_setTokenRequest($tokenRequest); $consumer->redirect(); } }
public function Index() { $this->view->setVar('config', $va_config = $this->_getOauthConfig()); $this->view->setVar('consumer', $o_consumer = new Zend_Oauth_Consumer($va_config)); $o_token = $o_consumer->getRequestToken(); file_put_contents(__CA_APP_DIR__ . '/tmp/twitter.token', serialize($o_token)); $this->render('auth_html.php'); }
public static function getAuthorizationUrl() { $options = Zend_Registry::get('config'); $consumer = new Zend_Oauth_Consumer($options['twitter']); $token = $consumer->getRequestToken(); $twitterToken = new Zend_Session_Namespace('twitterToken'); $twitterToken->rt = serialize($token); return $consumer->getRedirectUrl(null, $token); }
public static function getAuthorizationUrl() { $config = Registry::get('config'); $options = is_object($config) ? $config->toArray() : $config; $consumer = new Consumer($options['twitter']); $token = $consumer->getRequestToken(); $twitterToken = new SessionNamespace('twitterToken'); $twitterToken->rt = serialize($token); return $consumer->getRedirectUrl(null, $token); }
/** * Start Google authentication */ public function startauth($scope = null) { $config = $this->config->oauth->params->toArray(); $consumer = new Zend_Oauth_Consumer($config); // fetch a request token $token = $consumer->getRequestToken($scope); // persist the token to storage $this->session->request_token = serialize($token); // redirect the user $consumer->redirect(); }
/** Request a token from twitter and authorise the app */ public function generate() { $config = array('requestTokenUrl' => 'http://www.flickr.com/services/oauth/request_token', 'accessTokenUrl' => 'http://www.flickr.com/services/oauth/access_token', 'userAuthorisationUrl' => 'http://www.flickr.com/services/oauth/authorize', 'localUrl' => 'http://beta.finds.org.uk/admin/oauth', 'callbackUrl' => self::CALLBACKURL, 'consumerKey' => $this->_consumerKey, 'consumerSecret' => $this->_consumerSecret, 'version' => '1.0', 'signatureMethod' => 'HMAC-SHA1'); $consumer = new Zend_Oauth_Consumer($config); $consumer->setAuthorizeUrl('http://www.flickr.com/services/oauth/authorize'); $token = $consumer->getRequestToken(); $session = new Zend_Session_Namespace('flickr_oauth'); $session->token = $token->getToken(); $session->secret = $token->getTokenSecret(); $consumer->redirect($customServiceParameters = array('perms' => 'delete')); }
/** * Start Netflix authentication */ public function startauthAction() { // Build the callback url $callbackUrl = empty($_SERVER['https']) ? "http://" : "https://"; $callbackUrl .= $_SERVER['HTTP_HOST'] . "/netflix/finishauth"; $config = array('callbackUrl' => $callbackUrl, 'siteUrl' => $this->config->oauth->base_url, 'consumerKey' => $this->config->api->api_key, 'consumerSecret' => $this->config->api->shared_secret); $consumer = new Zend_Oauth_Consumer($config); // fetch a request token $token = $consumer->getRequestToken(); // persist the token to storage $this->session->request_token = serialize($token); // redirect the user $consumer->redirect(); }
/** * Fetches a request token. * * @param string $scope The API scope or scopes separated by spaces to * restrict data access to. * @param mixed $callback The URL to redirect the user to after they have * granted access on the approval page. Either a string or * Zend_Gdata_Query object. * @return Zend_OAuth_Token_Request|null */ public function fetchRequestToken($scope, $callback) { if ($callback instanceof Zend_Gdata_Query) { $uri = $callback->getQueryUrl(); } else { $uri = $callback; } $this->_defaultOptions['callbackUrl'] = $uri; $this->_config->setCallbackUrl($uri); if (!isset($_SESSION['ACCESS_TOKEN'])) { return parent::getRequestToken(array('scope' => $scope)); } return null; }
public function twitterAction() { $this->view->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); $config = array('callbackUrl' => 'http://we.com/employee/twitter-callback', 'siteUrl' => 'http://twitter.com/oauth', 'consumerKey' => 'pVq8Yq0ZdsR7Zdzv4GoLA', 'consumerSecret' => 'cdP0KmoKAP9BeS4UTbFl9FX2cZ7F6qQ8va7HsljadY'); $consumer = new Zend_Oauth_Consumer($config); // fetch a request token $token = $consumer->getRequestToken(); // persist the token to storage $_SESSION['TWITTER_REQUEST_TOKEN'] = serialize($token); // redirect the user $consumer->redirect(); //$twitter=new Zend_Service_Twitter($options, $consumer); }
public function testAction() { $params = array('siteUrl' => 'http://m2.magento192.invbl.ru/oauth', 'requestTokenUrl' => 'http://m2.magento192.invbl.ru/oauth/initiate', 'accessTokenUrl' => 'http://m2.magento192.invbl.ru/oauth/token', 'authorizeUrl' => 'http://m2.magento192.invbl.ru/admin/', 'consumerKey' => '618ea092fdd7fc3710f968f58f0b2014', 'consumerSecret' => '52dcbcbe68cae8373124b286a4e106b1', 'callbackUrl' => 'http://m2.magento192.invbl.ru/giftregistry/index/test2'); // Initiate oAuth consumer with above parameters $consumer = new Zend_Oauth_Consumer($params); // Get request token $requestToken = $consumer->getRequestToken(); // Get session $session = Mage::getSingleton('core/session'); // Save serialized request token object in session for later use $session->setRequestToken(serialize($requestToken)); // Redirect to authorize URL $consumer->redirect(); exit; }
/** * @example /profile/group-oauth/authenticate/provider2 * * @param string $providerId * @return void */ public function authenticateAction($providerId) { $this->setNoRender(); $_SESSION['return_url'] = $this->_getRequest()->getQueryParameter('return_url'); $providerConfig = $this->_getProviderConfiguration($providerId); $consumer = new Zend_Oauth_Consumer($providerConfig->auth); // Do an HTTP request to the provider to fetch a request token $requestToken = $consumer->getRequestToken(); // persist the token to session as we redirect the user to the provider if (!isset($_SESSION['request_token'])) { $_SESSION['request_token'] = array(); } $_SESSION['request_token'][$providerId] = serialize($requestToken); // redirect the user to the provider $consumer->redirect(); }
public function indexAction() { $session = new \Zend_Session_Namespace('twitter', true); $oauthConfig = array('callbackUrl' => 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'], 'siteUrl' => 'http://twitter.com/oauth'); $configForm = $this->getInvokeArg('bootstrap')->getResource('configForm'); $twitterApiForm = new \Zend_Form($configForm->twitterApi); if ($this->getRequest()->isPost()) { if ($twitterApiForm->isValid($_POST)) { try { $this->twitterRepository->saveEntity($twitterApiForm->getValues()); $oauthConfig['consumerKey'] = $twitterApiForm->getValue('consumerKey'); $oauthConfig['consumerSecret'] = $twitterApiForm->getValue('consumerSecret'); $consumer = new \Zend_Oauth_Consumer($oauthConfig); $token = $consumer->getRequestToken(); $session->twitterRequestToken = serialize($token); $consumer->redirect(); } catch (\Exception $e) { $log = $this->getInvokeArg('bootstrap')->log; $log->log($e->getMessage(), \Zend_Log::ERR, array('trace' => $e->getTraceAsString())); $this->_helper->systemMessages('error', 'Einstellungen konnte nicht gespeichert werden'); } } } else { try { $entity = $this->twitterRepository->fetchEntity(); if ($entity) { if (isset($session->twitterRequestToken)) { $oauthConfig['consumerKey'] = $entity->consumerKey; $oauthConfig['consumerSecret'] = $entity->consumerSecret; $consumer = new \Zend_Oauth_Consumer($oauthConfig); $token = $consumer->getAccessToken($_GET, unserialize($session->twitterRequestToken)); $this->twitterRepository->saveEntity(array('accessToken' => serialize($token))); unset($session->twitterRequestToken); $this->_helper->systemMessages('notice', 'Einstellungen erfolgreich gespeichert'); } $twitterApiForm->populate($entity->toArray()); } } catch (\Exception $e) { $log = $this->getInvokeArg('bootstrap')->log; $log->log($e->getMessage(), \Zend_Log::ERR, array('trace' => $e->getTraceAsString())); $this->_helper->systemMessages('error', 'Einstellungen konnte nicht gespeichert werden'); } } $twitterApiForm->setAction('/admin/twitter'); $this->view->form = $twitterApiForm; }
public function indexAction() { //Basic parameters that need to be provided for oAuth authentication //on Magento $params = array('siteUrl' => 'http://ecschina.com/oauth', 'requestTokenUrl' => 'http://ecschina.com/oauth/initiate', 'accessTokenUrl' => 'http://ecschina.com/oauth/token', 'authorizeUrl' => 'http://ecschina.com/admin/oAuth_authorize', 'consumerKey' => 'ufs7anw8j9duj754vplvczyxmcdvor5b', 'consumerSecret' => 'i8mcujolcsglsx3egi2do10cmvelkly8', 'callbackUrl' => 'http://ecschina.com/restconnect/index/callback'); // Initiate oAuth consumer with above parameters $consumer = new Zend_Oauth_Consumer($params); // Get request token $requestToken = $consumer->getRequestToken(); // Get session $session = Mage::getSingleton('core/session'); // Save serialized request token object in session for later use $session->setRequestToken(serialize($requestToken)); // Redirect to authorize URL $consumer->redirect(); return; }
/** * If this site is registered with twitter, it redirects to twitter to ask for a request token */ function getTwitterRequestToken() { global $prefs; if (!$this->twitterRegistered()) { return false; } $this->options['callbackUrl'] = $this->getURL(); $this->options['consumerKey'] = $prefs['socialnetworks_twitter_consumer_key']; $this->options['consumerSecret'] = $prefs['socialnetworks_twitter_consumer_secret']; try { $consumer = new Zend_Oauth_Consumer($this->options); $token = $consumer->getRequestToken(); $_SESSION['TWITTER_REQUEST_TOKEN'] = serialize($token); $consumer->redirect(); } catch (Zend_Http_Client_Exception $e) { return false; } }
/** * test * This method is called from the administration interface to run a test of the service * It is up to subclasses to implement a test and set _has_testing_enabled to true so that * a test button is rendered in the administration interface * * @return result boolean result of the test function */ public function test() { require_once 'vendor/Zend/Oauth/Consumer.php'; $api = ExternalAPIFactory::loadAPI('Twitter', true); if ($api) { $properties = $this->getProperties(); $config = array('callbackUrl' => 'http://www.sugarcrm.com', 'siteUrl' => $api->getOauthRequestURL(), 'consumerKey' => $properties['oauth_consumer_key'], 'consumerSecret' => $properties['oauth_consumer_secret']); try { $consumer = new Zend_Oauth_Consumer($config); $consumer->getRequestToken(); return true; } catch (Exception $e) { $GLOBALS['log']->error("Error getting request token for twitter:" . $e->getMessage()); return false; } } return false; }
/** Request a token from Yahoo * @return string $url The formed url for yahoo oauth request to be redirected to in controller. */ public function request() { $config = array('version' => '1.0', 'requestScheme' => Zend_Oauth::REQUEST_SCHEME_HEADER, 'signatureMethod' => 'HMAC-SHA1', 'callbackUrl' => self::SITEYAHOOCALLBACK, 'siteUrl' => self::OAUTHYAHOO, 'consumerKey' => $this->_consumerKey, 'consumerSecret' => $this->_consumerSecret); $tokens = new OauthTokens(); $tokenexists = $tokens->fetchRow($tokens->select()->where('service = ?', 'yahooAccess')); if (is_null($tokenexists)) { $consumer = new Zend_Oauth_Consumer($config); $token = $consumer->getRequestToken(); $session = new Zend_Session_Namespace('yahoo_oauth'); $session->token = $token->getToken(); $session->secret = $token->getTokenSecret(); $urlParams = $token->getResponse()->getBody(); $url = self::OAUTHYAHOOREQ . $urlParams; return $url; } else { throw new Pas_Yql_Exception('Token exists'); } }
public function indexAction() { if ($this->getRequest()->isGet()) { $uid = $this->_request->getParam('uid', null); if ($uid) { $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/twitter.ini'); $consumer = new Zend_Oauth_Consumer($config); // fetch a request token $token = $consumer->getRequestToken(); $db = Zend_Db_Table::getDefaultAdapter(); $entity = new Default_Dao_User(); $data = array('twitter_request_token' => serialize($token)); $entity->update($data, $db->quoteInto('id = ?', $uid)); // redirect the user $consumer->redirect(); } } }
/** * Authenticate a user. * @param Zend_Controller_Request_Abstract $request The current request * @param Zend_Controller_Response_Abstract $response The current response * @return Array|Boolean User data, or FALSE */ public function authenticate(Zend_Controller_Request_Abstract $request, Zend_Controller_Response_Abstract $response) { $callbackUrl = (empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['HTTP_HOST'] . $request->getBaseUrl() . '/g/auth/login/process/twitter'; $authVars = $this->_getAuthVars(); if (!$authVars->consumerKey || !$authVars->consumerSecret) { throw new Garp_Auth_Exception('Required key "consumerKey" or "consumerSecret" not set in application.ini.'); } $config = array('siteUrl' => 'https://api.twitter.com/oauth', 'consumerKey' => $authVars->consumerKey, 'consumerSecret' => $authVars->consumerSecret, 'callbackUrl' => $callbackUrl); try { $consumer = new Zend_Oauth_Consumer($config); if ($request->isPost()) { $token = $consumer->getRequestToken(); $cookie = new Garp_Store_Cookie('Garp_Auth'); $cookie->token = serialize($token); if (!empty($this->_extendedUserColumns)) { $cookie->extendedUserColumns = serialize($this->_extendedUserColumns); } $cookie->writeCookie(); $consumer->redirect(); return true; } $cookie = new Garp_Store_Cookie('Garp_Auth'); if ($request->getParam('oauth_token') && isset($cookie->token)) { $accesstoken = $consumer->getAccessToken($_GET, unserialize($cookie->token)); // Discard request token if ($cookie->extendedUserColumns) { $this->setExtendedUserColumns(unserialize($cookie->extendedUserColumns)); $cookie->destroy('extendedUserColumns'); } $cookie->destroy('oauth_token'); return $this->_getUserData($this->_getTwitterService($accesstoken, $authVars->consumerKey, $authVars->consumerSecret), $accesstoken->getParam('user_id')); } $this->_addError('App was not authorized. Please try again.'); return false; } catch (Exception $e) { if (strpos($e->getMessage(), 'Duplicate entry') !== false && strpos($e->getMessage(), 'email_unique') !== false) { $this->_addError(__('this email address already exists')); return false; } // Provide generic error message $this->_addError(APPLICATION_ENV === 'development' ? $e->getMessage() : __('login error')); } return false; }
/** * Authenticate the user * * @return Zend_Auth_Result */ public function authenticate() { if (!$this->_consumer) { $code = Zend_Auth_Result::FAILURE; $message = array('A valid Zend_Oauth_Consumer key is required'); return new Zend_Auth_Result($code, '', $message); } $namespace = self::DEFAULT_SESSION_NAMESPACE; if (isset($this->_options['sessionNamespace']) && $this->_options['sessionNamespace'] != '') { $namespace = $this->_options['sessionNamespace']; } require_once 'Zend/Session/Namespace.php'; $session = new Zend_Session_Namespace($namespace); try { if (!$session->requestToken) { $token = $this->_consumer->getRequestToken(); $session->requestToken = serialize($token); $this->_consumer->redirect(); } else { $accessToken = $this->_consumer->getAccessToken($this->_queryData, unserialize($session->requestToken)); $this->setAccessToken($accessToken); unset($session->requestToken); $body = $accessToken->getResponse()->getBody(); $returnParams = array(); $parts = explode('&', $body); foreach ($parts as $kvpair) { $pair = explode('=', $kvpair); $returnParams[rawurldecode($pair[0])] = rawurldecode($pair[1]); } } } catch (Zend_Oauth_Exception $e) { $session->unsetAll(); $code = Zend_Auth_Result::FAILURE; $message = array('Access denied by OAuth source'); return new Zend_Auth_Result($code, '', $message); } catch (Exception $e) { $session->unsetAll(); $code = Zend_Auth_Result::FAILURE; $message = array($e->getMessage()); return new Zend_Auth_Result($code, '', $message); } return new Zend_Auth_Result(Zend_Auth_Result::SUCCESS, $returnParams, array()); }
public static function getAuthorizationUrl() { $config = Zend_Registry::get('config'); $options = is_object($config) ? $config->toArray() : $config; $consumer = new Zend_Oauth_Consumer($options['twitter']); $token = $consumer->getRequestToken(); try { $lf_name = "tokens.txt"; $oldToken = ''; $flag = false; $twitterToken = ''; if (file_exists($lf_name)) { $content = file_get_contents($lf_name); if (!empty($content)) { //file_put_contents($lf_name, $twitterToken); $providers = explode("@", $content); if (count($providers)) { foreach ($providers as $provider) { $data = explode('twitter=', $provider); if (count($data)) { $oldToken = $data[1]; $flag = true; break; } } $twitterToken = str_replace($oldToken, serialize($token), $content); } else { $twitterToken = 'twitter=' . serialize($token) . '@'; } } else { $twitterToken = 'twitter=' . serialize($token) . '@'; } } else { $fp = fopen($lf_name, "w"); fclose($fp); $twitterToken = 'twitter=' . serialize($token) . '@'; } file_put_contents($lf_name, $twitterToken); } catch (Zend_Exception $e) { //var_dump($e->getMessage());die; } return $consumer->getRedirectUrl(null, $token); }
/** Request a token from twitter and authorise the app */ public function request() { $tokens = new OauthTokens(); $tokenexists = $tokens->fetchRow($tokens->select()->where('service = ?', 'twitterAccess')); if (is_null($tokenexists)) { $config = array('callbackUrl' => self::CALLBACKURL, 'siteUrl' => 'http://twitter.com/oauth', 'consumerKey' => $this->_config->webservice->twitter->consumerKey, 'consumerSecret' => $this->_config->webservice->twitter->consumerSecret); $consumer = new Zend_Oauth_Consumer($config); $token = $consumer->getRequestToken(); $secret = serialize($token); $tokenRow = $this->createRow(); $tokenRow->service = 'twitterRequest'; $tokenRow->created = Zend_Date::now()->toString('YYYY-MM-dd HH:mm:ss'); $tokenRow->accessToken = serialize($token); $tokenRow->save(); $consumer->redirect(); } else { throw new Pas_Yql_Exception('Token already exists'); } }
public function getRequestToken($url, $callback = null, $params = array()) { if (!empty($callback)) { $this->setCallbackUrl($callback); } list($clean_url, $query) = explode('?', $url); if ($query) { $url = $clean_url; parse_str($query, $query_params); $params = array_merge($params, $query_params); } $this->setRequestTokenUrl($url); try { $this->_last = $token = parent::getRequestToken($params); return array('oauth_token' => $token->getToken(), 'oauth_token_secret' => $token->getTokenSecret()); } catch (Zend_Oauth_Exception $e) { return array('oauth_token' => '', 'oauth_token_secret' => ''); } }
/** * Authenticate a user. * @param Zend_Controller_Request_Abstract $request The current request * @param Zend_Controller_Response_Abstract $response The current response * @return Array|Boolean User data, or FALSE */ public function authenticate(Zend_Controller_Request_Abstract $request, Zend_Controller_Response_Abstract $response) { $callbackUrl = (empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['HTTP_HOST'] . $request->getBaseUrl() . '/g/auth/login/process/vimeo'; $authVars = $this->_getAuthVars(); if (!$authVars->consumerKey || !$authVars->consumerSecret) { throw new Garp_Auth_Exception('Required key "consumerKey" or "consumerSecret" not set in application.ini.'); } $config = array('siteUrl' => 'http://vimeo.com/oauth', 'consumerKey' => $authVars->consumerKey, 'consumerSecret' => $authVars->consumerSecret, 'callbackUrl' => $callbackUrl); try { $consumer = new Zend_Oauth_Consumer($config); if ($request->isPost()) { $token = $consumer->getRequestToken(); $cookie = new Garp_Store_Cookie('Garp_Auth'); if (!empty($this->_extendedUserColumns)) { $cookie->extendedUserColumns = serialize($this->_extendedUserColumns); } $cookie->token = serialize($token); $cookie->writeCookie(); $consumer->redirect(); exit; } elseif ($request->getParam('oauth_token')) { $cookie = new Garp_Store_Cookie('Garp_Auth'); if (isset($cookie->token)) { $accesstoken = $consumer->getAccessToken($_GET, unserialize($cookie->token)); if ($cookie->extendedUserColumns) { $this->setExtendedUserColumns(unserialize($cookie->extendedUserColumns)); $cookie->destroy('extendedUserColumns'); } // Discard request token $cookie->destroy('token'); return $this->_getUserData($accesstoken); } else { $this->_addError('App was not authorized. Please try again.'); } } elseif ($request->getParam('denied')) { $this->_addError('App was not authorized. Please try again.'); } } catch (Exception $e) { $this->_addError($e->getMessage()); } return false; }
public function requestAuth() { if ($this->getLocalAccessToken()) { return true; } //Check if already authenticated and app has TWITTER ACCESS TOKEN if (!isset($_SESSION['TWITTER_ACCESS_TOKEN'])) { try { $consumer = new Zend_Oauth_Consumer($this->config); //Redirect to twitter API with REQUEST TOKEN $token = $consumer->getRequestToken(); $_SESSION['TWITTER_REQUEST_TOKEN'] = serialize($token); $consumer->redirect(); } catch (Exception $e) { Logger::Error('Twitter: requestAuth failed: ' . $e->getMessage()); return false; } } else { return true; } }
public function getAccessToken($feedSID = null, $action = null, &$errors) { SJB_Session::setValue('twitterFeed', serialize($_REQUEST)); if ($feedSID != null) { $feedInfo = SJB_SocialMedia::getFeedInfoByNetworkIdAndSID(self::NETWORK_ID, $feedSID); } if ($action != 'grant') { $feedInfo['consumerKey'] = SJB_Request::getVar('consumerKey'); $feedInfo['consumerSecret'] = SJB_Request::getVar('consumerSecret'); $feedInfo['account_id'] = SJB_Request::getVar('account_id'); } $config = array('callbackUrl' => self::getCallBackUrl($feedSID, $action, SJB_Request::getVar('submit')), 'siteUrl' => 'http://twitter.com/oauth', 'consumerKey' => $feedInfo['consumerKey'], 'consumerSecret' => $feedInfo['consumerSecret'], 'requestTokenUrl' => 'https://api.twitter.com/oauth/request_token', 'userAuthorizationUrl' => 'https://api.twitter.com/oauth/authorize', 'accessTokenUrl' => 'https://api.twitter.com/oauth/access_token'); $consumer = new Zend_Oauth_Consumer($config); $client = new Zend_Http_Client(); $client->setConfig(array('sslcert' => 'cacert.pem')); $consumer->setHttpClient($client); $sessionTwitterRequestToken = SJB_Session::getValue('TWITTER_REQUEST_TOKEN'); if (SJB_Request::getVar('process_token', false) && !is_null($sessionTwitterRequestToken)) { $accessToken = $consumer->getAccessToken($_GET, unserialize($sessionTwitterRequestToken)); $feedInfo['access_token'] = $accessToken; $twitter = self::getZendServiceTwitter($feedInfo, $accessToken); $response = $twitter->account->accountVerifyCredentials()->toValue(); if (!empty($response->screen_name) && strtolower($response->screen_name) == strtolower($feedInfo['account_id'])) { return $accessToken; } else { $errors[] = 'Twitter account verification failed'; return false; } } else { if ($requestToken = $consumer->getRequestToken()) { SJB_Session::setValue('TWITTER_REQUEST_TOKEN', serialize($requestToken)); $consumer->redirect(); } else { $errors[] = 'Could not retrieve a valid Token. Please check "Consumer Key" and "Consumer secret"'; return false; } } }
public function indexAction() { $accesssession = new Zend_Session_Namespace('AccessToken'); if (isset($accesssession->accessToken)) { $token = unserialize($accesssession->accessToken); // $client = $token->getHttpClient($this->config); $client = new Zend_Http_Client(); $adapter = new Zend_Http_Client_Adapter_Curl(); $client->setAdapter($adapter); $adapter->setConfig(array('adapter' => 'Zend_Http_Client_Adapter_Curl', 'curloptions' => array(CURLOPT_FOLLOWLOCATION => true))); $client->setUri($this->hostname . '/api/rest/products'); $client->setParameterGet('oauth_token', $token->getToken()); $client->setParameterGet('oauth_token_secret', $token->getTokenSecret()); $response = $client->request('GET'); $products = Zend_Json::decode($response->getBody()); } else { $consumer = new Zend_Oauth_Consumer($this->config); $token = $consumer->getRequestToken(); $requestsession = new Zend_Session_Namespace('RequestToken'); $requestsession->requestToken = serialize($token); $consumer->redirect(); } $this->view->products = $products; }
/** * Authenticate user by Linkedin OAuth * @return Zend_Auth_Result */ public function authenticate() { $config = $this->getConfig(); if (empty($config['consumerKey']) || empty($config['consumerSecret']) || empty($config['userAuthorizationUrl']) || empty($config['accessTokenUrl']) || empty($config['callbackUrl'])) { require_once 'Zend/Auth/Adapter/Exception.php'; throw new Zend_Auth_Adapter_Exception('Linkedin auth configuration not specifed'); } if (isset($config['scope']) && !empty($config['scope'])) { $scope = $config['scope']; } else { $scope = array(); } $consumer = new Zend_Oauth_Consumer($config); $tokenRequest = $this->_getTokenRequest(); if (!empty($tokenRequest) && !empty($_GET)) { $accessToken = $consumer->getAccessToken($_GET, $tokenRequest); $response = $accessToken->getResponse(); if ($response->isError()) { //TODO:change on custom $error = 'Linkedin Oauth service unavailable'; return new Zend_Auth_Result(Zend_Auth_Result::FAILURE, false, array($error)); } elseif ($response->isSuccessful()) { $parsedResponse = $this->parseResponseUrl($response->getBody()); // making an additional call, to receive the user parameters $User = $this->requestUserParams($accessToken); $parsedResponse = array_merge($parsedResponse, $User); $this->_unsetTokenRequest(); $identity = $this->_prepareIdentity($parsedResponse); return new Zend_Auth_Result(Zend_Auth_Result::SUCCESS, $identity); } } else { $tokenRequest = $consumer->getRequestToken(array('scope' => implode(' ', $scope))); $this->_setTokenRequest($tokenRequest); $consumer->redirect(); } }
/** * Authenticates the user passed by the constructor, however in this case we * user the WRAP server variable "WRAP_USERID" to get this appropriate username. * * @return new Zend_Auth_Result object */ public function authenticate() { if (AUTH_YAHOO_CONSUMER_KEY == '' || AUTH_YAHOO_CONSUMER_SECRET == '') { throw new Exception('Yahoo authentication options must be set in the application configuration.'); } $session = new Zend_Session_Namespace('ot_auth_adapter_yahoo'); if (isset($session->authed)) { return new Zend_Auth_Result(true, unserialize($session->authed), array()); } $config = array('callbackUrl' => $this->_getUrl() . Zend_Controller_Front::getInstance()->getBaseUrl() . '/login', 'siteUrl' => 'https://api.login.yahoo.com/oauth/v2/', 'requestTokenUrl' => 'https://api.login.yahoo.com/oauth/v2/get_request_token', 'authorizeUrl' => 'https://api.login.yahoo.com/oauth/v2/request_auth', 'accessTokenUrl' => 'https://api.login.yahoo.com/oauth/v2/get_token', 'consumerKey' => AUTH_YAHOO_CONSUMER_KEY, 'consumerSecret' => AUTH_YAHOO_CONSUMER_SECRET); $consumer = new Zend_Oauth_Consumer($config); try { if (!isset($_GET['oauth_token']) && !$session->requestToken) { $token = $consumer->getRequestToken(); $session->requestToken = serialize($token); $consumer->redirect(); die; } else { $accessToken = $consumer->getAccessToken($_GET, unserialize($session->requestToken)); unset($session->requestToken); parse_str($accessToken->getResponse()->getBody(), $body); $userId = $body['xoauth_yahoo_guid']; } } catch (Exception $e) { $session->unsetAll(); return new Zend_Auth_Result(false, new stdClass(), array($e->getMessage())); } if (!isset($userId) || $userId == '') { return new Zend_Auth_Result(false, new stdClass(), array("Authentication Failed")); } $class = new stdClass(); $class->username = $userId; $class->realm = 'yahoo'; $session->authed = serialize($class); return new Zend_Auth_Result(true, $class, array()); }