setup() public static method

Setup an adapter for a given provider
public static setup ( string $providerId, array $params = null ) : Hybrid_Provider_Adapter
$providerId string ID of the provider
$params array Adapter params
return Hybrid_Provider_Adapter
示例#1
0
 public function socialAction()
 {
     // hack to import all GLOBAL_HYBRID_ into global namespace
     foreach (token_get_all(file_get_contents(APPLICATION_PATH . '/../hybridauth/hybridauth.php')) as $token) {
         if ($token[0] == T_VARIABLE) {
             $var = substr($token[1], 1);
             if (strstr($var, 'GLOBAL_HYBRID_AUTH_') !== FALSE) {
                 global ${$var};
             }
         }
     }
     require_once APPLICATION_PATH . '/../hybridauth/hybridauth.php';
     $hauth = new Hybrid_Auth();
     if ($hauth->hasError()) {
         var_dump($hauth->getErrorMessage());
         exit;
     }
     if (!$hauth->hasSession()) {
         $adapter = $hauth->setup($this->_getParam('provider'), array('hauth_return_to' => 'http:///auth/social/provider/' . $this->_getParam('provider')));
         $adapter->login();
     } else {
         $adapter = $hauth->wakeup();
         $userData = $adapter->user();
         $adapter = $this->_helper->service('auth.adapter.social');
         $adapter->setProvider($userData->providerId)->setProviderUserId($userData->providerUID);
         $result = $this->auth->authenticate($adapter);
         if ($result->getCode() == Zend_Auth_Result::SUCCESS) {
             $this->_helper->redirector('index', 'dashboard');
         }
         $this->_forward('social', 'register', 'default', array('userData' => $userData));
     }
 }
示例#2
0
 /**
  * Return the adapter instance for an authenticated provider
  */
 public static function getAdapter($providerId = NULL)
 {
     Hybrid_Logger::info("Enter Hybrid_Auth::getAdapter( {$providerId} )");
     return Hybrid_Auth::setup($providerId);
 }
示例#3
0
 /**
  * define:endpoint step 3.1 and 3.2
  */
 public static function processAuthDone()
 {
     Hybrid_Endpoint::authInit();
     $provider_id = trim(strip_tags(Hybrid_Endpoint::$request["hauth_done"]));
     $hauth = Hybrid_Auth::setup($provider_id);
     if (!$hauth) {
         Hybrid_Logger::error("Endpoint: Invalide parameter on hauth_done!");
         $hauth->adapter->setUserUnconnected();
         header("HTTP/1.0 404 Not Found");
         die("Invalide parameter! Please return to the login page and try again.");
     }
     try {
         Hybrid_Logger::info("Endpoint: call adapter [{$provider_id}] loginFinish() ");
         $hauth->adapter->loginFinish();
     } catch (Exception $e) {
         Hybrid_Logger::error("Exception:" . $e->getMessage(), $e);
         Hybrid_Error::setError($e->getMessage(), $e->getCode(), $e->getTraceAsString(), $e);
         $hauth->adapter->setUserUnconnected();
     }
     Hybrid_Logger::info("Endpoint: job done. retrun to callback url.");
     $hauth->returnToCallbackUrl();
     die;
 }
示例#4
0
         Hybrid_Logger::error("Exception:" . $e->getMessage(), $e);
         Hybrid_Error::setError($e->getMessage(), $e->getCode(), $e->getTraceAsString(), $e);
         $hauth->returnToCallbackUrl();
     }
     die;
 }
 # define:endpoint step 3.1 and 3.2
 if (isset($_REQUEST["hauth_done"]) && $_REQUEST["hauth_done"]) {
     // Fix a strange behavior when some provider call back ha endpoint
     // with /index.php?hauth.done={provider}?{args}...
     if (strrpos($_SERVER["QUERY_STRING"], '?')) {
         $_SERVER["QUERY_STRING"] = str_replace("?", "&", $_SERVER["QUERY_STRING"]);
         parse_str($_SERVER["QUERY_STRING"], $_REQUEST);
     }
     $provider_id = trim(strip_tags($_REQUEST["hauth_done"]));
     $hauth = Hybrid_Auth::setup($provider_id);
     if (!$hauth) {
         Hybrid_Logger::error("Endpoint: Invalide parameter on hauth_done!");
         $hauth->adapter->setUserUnconnected();
         header("HTTP/1.0 404 Not Found");
         die("Invalide parameter! Please return to the login page and try again.");
     }
     try {
         Hybrid_Logger::info("Endpoint: call adapter [{$provider_id}] loginFinish() ");
         $hauth->adapter->loginFinish();
     } catch (Exception $e) {
         Hybrid_Logger::error("Exception:" . $e->getMessage(), $e);
         Hybrid_Error::setError($e->getMessage(), $e->getCode(), $e->getTraceAsString(), $e);
         $hauth->adapter->setUserUnconnected();
     }
     Hybrid_Logger::info("Endpoint: job done. retrun to callback url.");
示例#5
0
 public function init()
 {
     if (!e107::getPref('social_login_active', false)) {
         return;
     }
     $this->adapter = null;
     $providerId = $this->_provider;
     if ($providerId && Hybrid_Auth::isConnectedWith($providerId)) {
         $this->adapter = Hybrid_Auth::setup($providerId);
     }
 }
示例#6
0
 /**
  * define:endpoint step 3.1 and 3.2
  */
 public static function processAuthDone()
 {
     Hybrid_Endpoint::authInit();
     // Fix a strange behavior when some provider call back ha endpoint
     // with /index.php?hauth.done={provider}?{args}...
     if (strrpos($_SERVER["QUERY_STRING"], '?')) {
         $_SERVER["QUERY_STRING"] = str_replace("?", "&", $_SERVER["QUERY_STRING"]);
         parse_str($_SERVER["QUERY_STRING"], Hybrid_Endpoint::$request);
     }
     $provider_id = trim(strip_tags(Hybrid_Endpoint::$request["hauth_done"]));
     $hauth = Hybrid_Auth::setup($provider_id);
     if (!$hauth) {
         Hybrid_Logger::error("Endpoint: Invalide parameter on hauth_done!");
         $hauth->adapter->setUserUnconnected();
         header("HTTP/1.0 404 Not Found");
         die("Invalide parameter! Please return to the login page and try again.");
     }
     try {
         Hybrid_Logger::info("Endpoint: call adapter [{$provider_id}] loginFinish() ");
         $hauth->adapter->loginFinish();
     } catch (Exception $e) {
         Hybrid_Logger::error("Exception:" . $e->getMessage(), $e);
         Hybrid_Error::setError($e->getMessage(), $e->getCode(), $e->getTraceAsString(), $e);
         $hauth->adapter->setUserUnconnected();
     }
     Hybrid_Logger::info("Endpoint: job done. retrun to callback url.");
     $hauth->returnToCallbackUrl();
     die;
 }
示例#7
0
 /**
  * Define: endpoint step 3.1 and 3.2
  * @return void
  * @throws Hybrid_Exception
  */
 protected function processAuthDone()
 {
     $this->authInit();
     $provider_id = trim(strip_tags($this->request["hauth_done"]));
     $hauth = Hybrid_Auth::setup($provider_id);
     if (!$hauth) {
         Hybrid_Logger::error("Endpoint: Invalid parameter on hauth_done!");
         $hauth->adapter->setUserUnconnected();
         throw new Hybrid_Exception("Invalid parameter! Please return to the login page and try again.");
     }
     try {
         Hybrid_Logger::info("Endpoint: call adapter [{$provider_id}] loginFinish() ");
         $hauth->adapter->loginFinish();
     } catch (Exception $e) {
         Hybrid_Logger::error("Exception:" . $e->getMessage(), $e);
         Hybrid_Error::setError($e->getMessage(), $e->getCode(), $e->getTraceAsString(), $e->getPrevious());
         $hauth->adapter->setUserUnconnected();
     }
     Hybrid_Logger::info("Endpoint: job done. return to callback url.");
     $hauth->returnToCallbackUrl();
     die;
 }
示例#8
0
 /**
  * define:endpoint step 3.1 and 3.2
  */
 protected function processAuthDone()
 {
     $provider_id = trim($this->getProperty('hauth_done'));
     $hauth = Hybrid_Auth::setup($provider_id);
     if (!$hauth) {
         Hybrid_Logger::error("Endpoint: Invalid parameter on hauth_done!");
         $hauth->adapter->setUserUnconnected();
         header("HTTP/1.0 404 Not Found");
         return "Invalid parameter! Please return to the login page and try again.";
     }
     try {
         Hybrid_Logger::info("Endpoint: call adapter [{$provider_id}] loginFinish() ");
         $hauth->adapter->loginFinish();
     } catch (Exception $e) {
         Hybrid_Logger::error("Exception:" . $e->getMessage(), $e);
         Hybrid_Error::setError($e->getMessage(), $e->getCode(), $e->getTraceAsString(), $e);
         $hauth->adapter->setUserUnconnected();
     }
     Hybrid_Logger::info("Endpoint: job done. retrun to callback url.");
     // Save profile data in session
     $profile = $hauth->adapter->getUserProfile();
     // Try to get user by social profile
     /*$q = $this->modx->newQuery('modUser');
       $q->innerJoin('modUserProfile', 'Profile');
       $q->innerJoin('modHybridAuthUserProfile', 'SocialProfile');
       $q->innerJoin('modHybridAuthProvider', 'Provider', "Provider.id=SocialProfile.provider");
       $q->where(array(
           "SocialProfile.identifier"  => $profile->identifier,
           "Provider.name"     => $provider,
           "modUser.active"    => 1,
           "Profile.blocked"   => 0,
       ));
       $q->limit(1);
       
       if($user = $this->modx->getObject('modUser', $q)){
           $user->addSessionContext($this->modx->context->key);
           $redirectTo = $this->modx->getOption('site_url');
           $this->modx->sendRedirect($redirectTo);
           return;
       }*/
     // else
     $_SESSION['social_profile'] = array('provider' => $provider_id, 'profile' => $this->modx->error->toArray($profile));
     //$q->prepare();
     //$this->modx->log(1, $q->toSQL());
     // else
     $hauth->returnToCallbackUrl();
     return '';
 }
示例#9
0
 /**
  * Return the adapter instance for an authenticated provider
  */
 public static function getAdapter($providerId = NULL)
 {
     if (!Hybrid_Auth::$store) {
         require_once realpath(dirname(__FILE__)) . "/Storage.php";
         Hybrid_Auth::$store = new Hybrid_Storage();
     }
     if (!Hybrid_Auth::$config) {
         Hybrid_Auth::initialize(Hybrid_Auth::storage()->config("CONFIG"));
     }
     return Hybrid_Auth::setup($providerId);
 }
示例#10
0
 /**
  * define:endpoint step 3.1 and 3.2
  */
 public static function processAuthDone()
 {
     Hybrid_Endpoint::authInit();
     $provider_id = trim(strip_tags(Hybrid_Endpoint::$request["hauth_done"]));
     # check if page accessed directly
     if (!Hybrid_Auth::storage()->get("hauth_session.{$provider_id}.hauth_endpoint")) {
         throw new Hybrid_Exception("You cannot access this page directly.");
     }
     $hauth = Hybrid_Auth::setup($provider_id);
     if (!$hauth) {
         $hauth->adapter->setUserUnconnected();
         throw new Hybrid_Exception("Invalid parameter! Please return to the login page and try again.");
     }
     try {
         $hauth->adapter->loginFinish();
     } catch (Exception $e) {
         Hybrid_Error::setError($e->getMessage(), $e->getCode());
         $hauth->adapter->setUserUnconnected();
     }
     $hauth->returnToCallbackUrl();
     die;
 }
示例#11
0
 /**
  * define:endpoint step 3.1 and 3.2
  */
 protected function processAuthDone()
 {
     $provider_id = trim($this->getProperty('hauth_done'));
     $hauth = Hybrid_Auth::setup($provider_id);
     if (!$hauth) {
         Hybrid_Logger::error("Endpoint: Invalid parameter on hauth_done!");
         $hauth->adapter->setUserUnconnected();
         header("HTTP/1.0 404 Not Found");
         return "Invalid parameter! Please return to the login page and try again.";
     }
     try {
         Hybrid_Logger::info("Endpoint: call adapter [{$provider_id}] loginFinish() ");
         $hauth->adapter->loginFinish();
     } catch (Exception $e) {
         Hybrid_Logger::error("Exception:" . $e->getMessage(), $e);
         Hybrid_Error::setError($e->getMessage(), $e->getCode(), $e->getTraceAsString(), $e);
         $hauth->adapter->setUserUnconnected();
     }
     Hybrid_Logger::info("Endpoint: job done. retrun to callback url.");
     // Save profile data in session
     $profile = $hauth->adapter->getUserProfile();
     // else
     $_SESSION['social_profile'] = array('provider' => $provider_id, 'profile' => $this->modx->error->toArray($profile));
     //$q->prepare();
     //$this->modx->log(1, $q->toSQL());
     // else
     $hauth->returnToCallbackUrl();
     return '';
 }