Beispiel #1
0
 public function _getAccessToken($accessToken = null)
 {
     if (!empty($accessToken)) {
         $this->_accessToken = $accessToken;
     } elseif (!empty($_SESSION['linkedin']['accessToken'])) {
         $this->_accessToken = unserialize($_SESSION['linkedin']['accessToken']);
     } elseif (!empty($_SESSION['linkedin']['requestToken'])) {
         $this->_accessToken = $this->_oConsumer->getAccessToken($_REQUEST, unserialize($_SESSION['linkedin']['requestToken']));
     }
     if ($this->_accessToken) {
         $_SESSION['linkedin']['accessToken'] = serialize($this->_accessToken);
         return $this->_accessToken;
     }
 }
Beispiel #2
0
 public function callbackAction()
 {
     //oAuth parameters
     $params = array('siteUrl' => 'http://ecschina.com/oauth', 'requestTokenUrl' => 'http://ecschina.com/oauth/initiate', 'accessTokenUrl' => 'http://ecschina.com/oauth/token', 'consumerKey' => 'ufs7anw8j9duj754vplvczyxmcdvor5b', 'consumerSecret' => 'i8mcujolcsglsx3egi2do10cmvelkly8');
     // Get session
     $session = Mage::getSingleton('core/session');
     // Read and unserialize request token from session
     $requestToken = unserialize($session->getRequestToken());
     // Initiate oAuth consumer
     $consumer = new Zend_Oauth_Consumer($params);
     // Using oAuth parameters and request Token we got, get access token
     $acessToken = $consumer->getAccessToken($_GET, $requestToken);
     // Get HTTP client from access token object
     $restClient = $acessToken->getHttpClient($params);
     // Set REST resource URL
     $restClient->setUri('http://magento.loc/api/rest/products');
     // In Magento it is neccesary to set json or xml headers in order to work
     $restClient->setHeaders('Accept', 'application/json');
     // Get method
     $restClient->setMethod(Zend_Http_Client::GET);
     //Make REST request
     $response = $restClient->request();
     // Here we can see that response body contains json list of products
     Zend_Debug::dump($response);
     return;
 }
Beispiel #3
0
 /**
  * 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();
     }
 }
 /**
  *
  * @example /profile/group-oauth/consume/provider2?oauth_token=request-token
  *
  * @param string $providerId
  * @return void
  */
 public function consumeAction($providerId)
 {
     $this->setNoRender();
     $providerConfig = $this->_getProviderConfiguration($providerId);
     $consumer = new Zend_Oauth_Consumer($providerConfig->auth);
     $queryParameters = $this->_getRequest()->getQueryParameters();
     if (empty($queryParameters)) {
         throw new EngineBlock_Exception('Unable to consume access token, no query parameters given');
     }
     if (!isset($_SESSION['request_token'][$providerId])) {
         throw new EngineBlock_Exception("Unable to consume access token, no request token (session lost?)");
     }
     $requestToken = unserialize($_SESSION['request_token'][$providerId]);
     $token = $consumer->getAccessToken($queryParameters, $requestToken);
     $userId = $this->attributes['nameid'][0];
     $provider = EngineBlock_Group_Provider_OpenSocial_Oauth_ThreeLegged::createFromConfigs($providerConfig, $userId);
     $provider->setAccessToken($token);
     if (!$provider->validatePreconditions()) {
         EngineBlock_ApplicationSingleton::getLog()->err("Unable to test OpenSocial 3-legged Oauth provider because not all preconditions have been matched?", new EngineBlock_Log_Message_AdditionalInfo($userId, null, null, null));
         $this->providerId = $providerId;
         $this->renderAction("Error");
     } else {
         // Now that we have an Access Token, we can discard the Request Token
         $_SESSION['request_token'][$providerId] = null;
         $this->_redirectToUrl($_SESSION['return_url']);
     }
 }
 public function Callback()
 {
     $this->view->setVar('config', $va_config = $this->_getOauthConfig());
     $this->view->setVar('consumer', $o_consumer = new Zend_Oauth_Consumer($va_config));
     $o_token = $o_consumer->getAccessToken($_GET, unserialize(file_get_contents(__CA_APP_DIR__ . '/tmp/twitter.token')));
     file_put_contents(__CA_APP_DIR__ . '/tmp/twitter.token', serialize($o_token));
     $this->render('handle_callback_html.php');
 }
 public function twitterCallbackAction()
 {
     $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);
     $token = $consumer->getAccessToken($_GET, unserialize($_SESSION['TWITTER_REQUEST_TOKEN']));
     $_SESSION['TWITTER_ACCESS_TOKEN'] = serialize($token);
     // $twitter=new Zend_Service_Twitter($options, $consumer);
     $this->_helper->_redirector->gotoUrl($this->view->seoUrl('/employee/twitter-post'));
 }
 public function getAccessToken($responseParams)
 {
     if (!empty($responseParams) && isset($_SESSION['REQUEST_TOKEN'])) {
         $oauthConsumer = new Zend_Oauth_Consumer($this->configParams);
         $token = $oauthConsumer->getAccessToken($responseParams, unserialize($_SESSION['REQUEST_TOKEN']));
         $_SESSION['ACCESS_TOKEN'] = serialize($token);
         $_SESSION['REQUEST_TOKEN'] = null;
         return true;
     } else {
         return false;
         //exit('Invalid callback request. Oops. Sorry.');
     }
 }
 /**
  * Complete Netflix authentication
  */
 public function finishauth()
 {
     $config = $this->config->oauth->params->toArray();
     $consumer = new Zend_Oauth_Consumer($config);
     if (!empty($_GET) && isset($this->session->request_token)) {
         $token = $consumer->getAccessToken($_GET, unserialize($this->session->request_token));
         $this->session->token = serialize($token);
         // Now that we have an Access Token, we can discard the Request Token
         $this->session->request_token = null;
     } else {
         // Something went horribly wrong
         exit('Invalid callback request. Cannot continue.');
     }
 }
Beispiel #9
0
 public function callbackAction()
 {
     $requestsession = new Zend_Session_Namespace('RequestToken');
     if (!empty($_GET) && isset($requestsession->requestToken)) {
         $accesssession = new Zend_Session_Namespace('AccessToken');
         $consumer = new Zend_Oauth_Consumer($this->config);
         $token = $consumer->getAccessToken($_GET, unserialize($requestsession->requestToken));
         $accesssession->accessToken = serialize($token);
         // Now that we have an Access Token, we can discard the Request Token
         unset($requestsession->requestToken);
         // $this->_redirect();
         $this->_forward('index', 'index', 'default');
     } else {
         // Mistaken request? Some malfeasant trying something?
         throw new Exception('Invalid callback request. Oops. Sorry.');
     }
 }
 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;
 }
Beispiel #11
0
 /**
  * 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;
 }
Beispiel #12
0
 /**
  * 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());
 }
 /**
  * Complete Netflix authentication
  */
 public function finishauthAction()
 {
     // 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);
     if (!empty($_GET) && isset($this->session->request_token)) {
         $token = $consumer->getAccessToken($_GET, unserialize($this->session->request_token));
         $this->session->token = serialize($token);
         // Now that we have an Access Token, we can discard the Request Token
         $this->session->request_token = null;
         var_dump($token);
         die;
     } else {
         // Mistaken request? Some malfeasant trying something?
         exit('Invalid callback request. Oops. Sorry.');
     }
 }
 public function activateTwitter($queryData)
 {
     $loggedInUserId = $this->getIdentityId();
     if ($loggedInUserId) {
         $db = Zend_Db_Table::getDefaultAdapter();
         $userDao = new Default_Dao_User();
         $userRow = $userDao->fetchRow($db->quoteInto('id = ?', $loggedInUserId));
         if ($userRow) {
             $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/twitter.ini');
             $consumer = new Zend_Oauth_Consumer($config);
             $get = array();
             parse_str($queryData, $get);
             $token = $consumer->getAccessToken($get, unserialize($userRow['twitter_request_token']));
             $db = Zend_Db_Table::getDefaultAdapter();
             $data = array('twitter_access_token' => serialize($token), 'twitter_request_token' => NULL);
             $userDao->update($data, $db->quoteInto('id = ?', $loggedInUserId));
         }
     }
 }
Beispiel #15
0
 public function test2Action()
 {
     //oAuth parameters
     $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', 'consumerKey' => '618ea092fdd7fc3710f968f58f0b2014', 'consumerSecret' => '52dcbcbe68cae8373124b286a4e106b1');
     // Get session
     $session = Mage::getSingleton('core/session');
     // Read and unserialize request token from session
     $requestToken = unserialize($session->getRequestToken());
     // Initiate oAuth consumer
     $consumer = new Zend_Oauth_Consumer($params);
     $acessToken = $consumer->getAccessToken($_GET, $requestToken);
     $restClient = $acessToken->getHttpClient($params);
     $restClient->setUri('http://m2.magento192.invbl.ru/api/rest/products');
     $restClient->setHeaders('Accept', 'application/json');
     $restClient->setMethod(Zend_Http_Client::GET);
     $response = $restClient->request();
     $body = $response->getBody();
     var_dump($body);
 }
Beispiel #16
0
 /**
  * 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;
 }
Beispiel #17
0
 /** Create the access token and save to database
  * 
  */
 public function access()
 {
     $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);
     $tokens = new OauthTokens();
     $token = $tokens->fetchRow($tokens->select()->where('service = ?', 'twitterRequest'));
     // Get access token
     if (!is_null($token)) {
         $accessToken = $consumer->getAccessToken(Zend_Controller_Front::getInstance()->getRequest()->getQuery(), unserialize($token['accessToken']));
         $oauth_token = $accessToken->getToken();
         $tokenRow = $this->createRow();
         $tokenRow->service = 'twitterAccess';
         $tokenRow->created = Zend_Date::now()->toString('YYYY-MM-dd HH:mm:ss');
         $tokenRow->accessToken = serialize($accessToken);
         $tokenRow->save();
         return true;
     } else {
         throw new Pas_Yql_Exception('Invalid access. No token provided.');
     }
 }
Beispiel #18
0
 /** Create the access token and save to database
  * 
  */
 public function access()
 {
     $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');
     $session = new Zend_Session_Namespace('flickr_oauth');
     // build the token request based on the original token and secret
     $request = new Zend_Oauth_Token_Request();
     $request->setToken($session->token)->setTokenSecret($session->secret);
     unset($session->token);
     unset($session->secret);
     $now = Zend_Date::now()->toString('YYYY-MM-dd HH:mm:ss');
     $date = new Zend_Date();
     $consumer = new Zend_Oauth_Consumer($config);
     $token = $consumer->getAccessToken(Zend_Controller_Front::getInstance()->getRequest()->getQuery(), $request);
     $tokens = new OauthTokens();
     $tokenRow = $tokens->createRow();
     $tokenRow->service = 'flickrAccess';
     $tokenRow->accessToken = serialize($token);
     $tokenRow->created = $now;
     $tokenRow->save();
 }
Beispiel #19
0
 public function handleCallback()
 {
     if ($this->getLocalAccessToken()) {
         return true;
     }
     if (!empty($_GET) && isset($_SESSION['TWITTER_REQUEST_TOKEN'])) {
         try {
             $consumer = new Zend_Oauth_Consumer($this->config);
             $token = $consumer->getAccessToken($_GET, unserialize($_SESSION['TWITTER_REQUEST_TOKEN']));
             $this->accessToken = serialize($token);
             $_SESSION['TWITTER_ACCESS_TOKEN'] = $this->accessToken;
             unset($_SESSION['TWITTER_REQUEST_TOKEN']);
             return true;
         } catch (Exception $e) {
             Logger::Error('Twitter: handleCallback failed: ' . $e->getMessage());
             return false;
         }
     }
     return false;
 }
 public function callbackAction()
 {
     $query = $this->getRequest()->getParam('query');
     $resultForm = $this->getRequest()->getParam('form');
     $key = $this->getRequest()->getParam('key');
     $secret = $this->getRequest()->getParam('secret');
     $rootURL = str_replace('index.php/', '', Mage::getUrl());
     $params = array('siteUrl' => $rootURL . 'oauth', 'requestTokenUrl' => $rootURL . 'oauth/initiate', 'accessTokenUrl' => $rootURL . 'oauth/token', 'consumerKey' => $key, 'consumerSecret' => $secret);
     $session = Mage::getSingleton('core/session');
     $requestToken = unserialize($session->getRequestToken());
     $consumer = new Zend_Oauth_Consumer($params);
     $acessToken = $consumer->getAccessToken($_GET, $requestToken);
     $restClient = $acessToken->getHttpClient($params)->setConfig(array('timeout' => 120));
     $restClient->setUri(str_replace('index.php/', '', $rootURL) . 'api/rest/' . $query);
     //            $restClient->setUri('http://127.0.0.1/magento/index.php/api/rest/orders');
     $restClient->setHeaders('Accept', 'application/' . $resultForm);
     $restClient->setMethod(Zend_Http_Client::GET);
     $response = $restClient->request();
     Zend_Debug::dump($response);
 }
 public function accessAction()
 {
     $config = array('callbackUrl' => Mage::helper('adminhtml')->getUrl('adminhtml/twitterReader_callback/access'), 'siteUrl' => 'https://api.twitter.com/oauth', 'consumerKey' => Mage::getStoreConfig('twitterreader/configuration/consumer_key'), 'consumerSecret' => Mage::getStoreConfig('twitterreader/configuration/consumer_secret'));
     $consumer = new Zend_Oauth_Consumer($config);
     try {
         $request = Mage::helper('twitterreader')->getOauthObject('twitterreader/configuration/request_token');
         if ($request) {
             $access = $consumer->getAccessToken($_GET, $request);
             Mage::helper('twitterreader')->storeOauthObject($access, 'twitterreader/configuration/access_token');
             Mage::helper('twitterreader')->removeOauthObject('twitterreader/configuration/request_token');
             Mage::getConfig()->saveConfig('twitterreader/configuration/callback_url', '');
         }
     } catch (Exception $e) {
         Mage::getConfig()->saveConfig('twitterreader/configuration/callback_url', '');
         Mage::helper('twitterreader')->removeOauthObject('twitterreader/configuration/request_token');
         Mage::helper('twitterreader')->removeOauthObject('twitterreader/configuration/access_token');
     }
     $url = Mage::helper('adminhtml')->getUrl('adminhtml/system_config/edit/section/twitterreader');
     $this->getResponse()->setRedirect($url);
 }
Beispiel #22
0
 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;
         }
     }
 }
Beispiel #23
0
 /**
  * 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();
     }
 }
 public function callbackAction()
 {
     $oauth_token = $this->getRequest()->getParam('oauth_token');
     $config = $this->config;
     $consumer = new Zend_Oauth_Consumer($config);
     $FANFOU_REQUEST_TOKEN = unserialize(Mage::getSingleton('core/session')->getData('FANFOU_REQUEST_TOKEN'));
     if (!empty($_GET) && isset($FANFOU_REQUEST_TOKEN)) {
         $token = $consumer->getAccessToken($_GET, $FANFOU_REQUEST_TOKEN);
         Mage::getSingleton('core/session')->setData('FANFOU_ACCESS_TOKEN', serialize($token));
     } else {
         Mage::log('error access token');
         echo 'error';
         exit;
     }
     $client = $token->getHttpClient($config);
     $client->setUri($this->baseUrl . 'account/verify_credentials.json');
     $client->setMethod(Zend_Http_Client::GET);
     $response = $client->request();
     $data = json_decode($response->getBody());
     if ($data->id) {
         if (Mage::getSingleton('customer/session')->isLoggedIn()) {
             $id = Mage::getSingleton('customer/session')->getCustomer()->getId();
             $customer = Mage::getModel('customer/customer')->load($id);
             $customer = Mage::helper('customer/data')->getCurrentCustomer();
             $customer->setFanfouId($data->id);
             $customer->setFanfouToken(serialize($token));
             $customer->save();
             echo '登录';
             exit;
         } else {
             echo '未登录';
             exit;
         }
     }
     exit;
 }
 /**
  * Upgrades an authorized request token to an access token.
  *
  * @return Zend_OAuth_Token_Access||null
  */
 public function fetchAccessToken()
 {
     if (!isset($_SESSION['ACCESS_TOKEN'])) {
         if (!empty($_GET) && isset($_SESSION['REQUEST_TOKEN'])) {
             return parent::getAccessToken($_GET, unserialize($_SESSION['REQUEST_TOKEN']));
         }
     }
     return null;
 }
Beispiel #26
0
 /**
  * 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());
 }
Beispiel #27
0
 /** Refresh access using old details
  * @access public
  * @param string $old_access_token
  * @param string $old_token_secret
  * @param string $oauth_session_handle
  * @return \build_token
  */
 public function refreshAccess($old_access_token, $old_token_secret, $oauth_session_handle)
 {
     $config = array('siteUrl' => self::YAHOOTOKENGET, 'callbackUrl' => 'http://beta.finds.org.uk/admin/oauth/', 'consumerKey' => $this->_consumerKey, 'consumerSecret' => $this->_consumerSecret);
     $session = new Zend_Session_Namespace('yahoo_oauth');
     // build the token request based on the original token and secret
     $request = new Zend_Oauth_Token_Request();
     $request->setToken($session->token)->setTokenSecret($session->secret);
     unset($session->token);
     unset($session->secret);
     $consumer = new Zend_Oauth_Consumer($config);
     $token = $consumer->getAccessToken($_GET, $request);
     return $this->buildToken($token);
 }
Beispiel #28
0
 public function testGetAccessTokenReturnsInstanceOfOauthTokenAccess()
 {
     $config = array('consumerKey' => '12345', 'consumerSecret' => '54321');
     $consumer = new Zend_Oauth_Consumer($config);
     $rtoken = new Zend_Oauth_Token_Request();
     $rtoken->setToken('token');
     $token = $consumer->getAccessToken(array('oauth_token' => 'token'), $rtoken, null, new Test_Http_AccessToken_48231());
     $this->assertType('Zend_Oauth_Token_Access', $token);
 }
Beispiel #29
0
 function getHttpClient($service)
 {
     $token = NULL;
     if (!$this->hasStoredToken($service, true, false, $this->userId)) {
         $consumer = new Zend_Oauth_Consumer($this->_oauthOptions);
         if (isset($_GET['oauth_token'])) {
             $token = $consumer->getAccessToken($_GET, $this->retrieveRequestToken($service));
             $this->storeAccessToken($service, $token);
         } else {
             $scope = isset($this->_scopes[$service]) ? $this->_scopes[$service] : false;
             if ($scope === false) {
                 throw new Exception("Invalid scope specified");
             }
             $token = $consumer->getRequestToken(array('scope' => $scope));
             $this->storeRequestToken($service, $token);
             $consumer->redirect();
             exit;
         }
     } else {
         $token = $this->retreiveAccessToken($service);
     }
     return $token->getHttpClient($this->_oauthOptions);
 }
Beispiel #30
0
 /**
  * When the user confirms the request token, twitter redirects back to our site providing us with a request token.
  * This function receives a permanent access token for the given user and stores it in his preferences
  *
  * @param string $user  user Id of the user to store the access token for
  *
  * @return bool 		true on success
  */
 function getTwitterAccessToken($user)
 {
     global $prefs;
     if ($prefs['socialnetworks_twitter_consumer_key'] == '' or $prefs['socialnetworks_twitter_consumer_secret'] == '' or !isset($_SESSION['TWITTER_REQUEST_TOKEN'])) {
         return false;
     }
     $this->options['callbackUrl'] = $this->getURL();
     $this->options['consumerKey'] = $prefs['socialnetworks_twitter_consumer_key'];
     $this->options['consumerSecret'] = $prefs['socialnetworks_twitter_consumer_secret'];
     $consumer = new Zend_Oauth_Consumer($this->options);
     $token = $consumer->getAccessToken($_GET, unserialize($_SESSION['TWITTER_REQUEST_TOKEN']));
     unset($_SESSION['TWITTER_REQUEST_TOKEN']);
     $this->set_user_preference($user, 'twitter_token', serialize($token));
     return true;
 }