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);
 }
Exemple #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();
     }
 }
 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');
 }
Exemple #5
0
 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);
 }
Exemple #6
0
 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();
 }
Exemple #8
0
 /** 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);
 }
Exemple #12
0
 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;
 }
Exemple #15
0
 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;
     }
 }
Exemple #17
0
 /**
  * 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;
 }
Exemple #18
0
 /** 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();
         }
     }
 }
Exemple #20
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;
 }
Exemple #21
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());
 }
Exemple #22
0
 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);
 }
Exemple #23
0
 /** 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');
     }
 }
Exemple #24
0
 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' => '');
     }
 }
Exemple #25
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;
 }
Exemple #26
0
 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;
         }
     }
 }
Exemple #28
0
 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;
 }
Exemple #29
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();
     }
 }
Exemple #30
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());
 }