当前位置: 首页>>代码示例>>PHP>>正文


PHP Hybrid_Error类代码示例

本文整理汇总了PHP中Hybrid_Error的典型用法代码示例。如果您正苦于以下问题:PHP Hybrid_Error类的具体用法?PHP Hybrid_Error怎么用?PHP Hybrid_Error使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了Hybrid_Error类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: wsl_display_dev_mode_debugging_area

/**
* Display a debugging area.
*
* This function is highly inspired by the Query Monitor.
* https://wordpress.org/plugins/query-monitor/
*
* Note: in order for this function to display the sql queries, 'SAVEQUERIES' should be defined as true in 'wp-config.php'
*/
function wsl_display_dev_mode_debugging_area($keyword = 'wsl_')
{
    global $wpdb, $wp_actions, $wp_filter;
    ?>
<style>
	.wsl-dev-nonselectsql {
		color: #a0a !important;
	}
	.wsl-dev-expensivesql {
		color: #f44 !important;
	}
	.wsl-dev-optionfunc {
		color: #4a4 !important;
	}
	.wsl-dev-wslfunc {
		color: #1468fa !important;
	}
	.wsl-dev-nonwslfunc {
		color: #a0a !important;
	}
	.wsl-dev-usedhook, .wsl-dev-usedhook a {
		color: #1468fa;
	}
	.wsl-dev-usedwslhook {
		color: #a0a !important;
	}
	.wsl-dev-unusedhook, .wsl-dev-unusedhook a{
		color: #a3a3a3 !important;
	}
	.wsl-dev-hookcallback, .wsl-dev-hookcallback a {
		color: #4a4 !important;
	}
	.wsl-dev-table {
		width:100%;
		border: 1px solid #e5e5e5;
		box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
		border-spacing: 0;
		clear: both;
		margin: 0;
		width: 100%;
	}
	.wsl-dev-table td, .wsl-dev-table th {
		border: 1px solid #dddddd;
		padding: 8px 10px;
		background-color: #fff;
		text-align: left;
	}
</style>

<?php 
    if (class_exists('Hybrid_Error', false) && Hybrid_Error::getApiError()) {
        ?>
			<h4>Provider API Error</h4>
			<table class="wsl-dev-table">
				<tr>
					<td>
						<?php 
        echo Hybrid_Error::getApiError();
        ?>
					</td>
				</tr>
			</table>
		<?php 
    }
    ?>

	<h4>SQL Queries</h4>
	<table class="wsl-dev-table">
		<tr>
			<td colspan="3">
				1. SAVEQUERIES should be defined and set to TRUE in order for the queries to show up (http://codex.wordpress.org/Editing_wp-config.php#Save_queries_for_analysis)
				<br />
				2. Calls for get_option() don't necessarily result on a query to the database. WP use both cache and wp_load_alloptions() to load all options at once. Hence, it won't be shown here.
			</td>
		</tr>
		<?php 
    $queries = $wpdb->queries;
    $total_wsl_queries = 0;
    $total_wsl_queries_time = 0;
    if ($queries) {
        foreach ($queries as $item) {
            $sql = trim($item[0]);
            $time = $item[1];
            $stack = $item[2];
            $sql = str_ireplace(array(' FROM ', ' WHERE ', ' LIMIT ', ' GROUP BY ', ' ORDER BY ', ' SET '), array("\n" . 'FROM ', "\n" . 'WHERE ', "\n" . 'LIMIT ', "\n" . 'GROUP BY ', "\n" . 'ORDER BY ', "\n" . 'SET '), $sql);
            # https://wordpress.org/plugins/query-monitor/
            $callers = explode(',', $stack);
            $caller = trim(end($callers));
            if (false !== strpos($caller, '(')) {
                $caller_name = substr($caller, 0, strpos($caller, '(')) . '()';
            } else {
                $caller_name = $caller;
//.........这里部分代码省略.........
开发者ID:designwall,项目名称:dw-social-login,代码行数:101,代码来源:wsl.utilities.php

示例2: request

 /** 
  * Make http request  
  */
 function request($url, $method, $postfields = NULL, $auth_header = NULL, $content_type = NULL, $multipart = false)
 {
     $this->http_info = array();
     $ci = curl_init();
     /* Curl settings */
     curl_setopt($ci, CURLOPT_USERAGENT, $this->curl_useragent);
     curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, $this->curl_connect_time_out);
     curl_setopt($ci, CURLOPT_TIMEOUT, $this->curl_time_out);
     curl_setopt($ci, CURLOPT_RETURNTRANSFER, TRUE);
     curl_setopt($ci, CURLOPT_HTTPHEADER, array('Expect:'));
     curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, $this->curl_ssl_verifypeer);
     curl_setopt($ci, CURLOPT_HEADERFUNCTION, array($this, 'getHeader'));
     curl_setopt($ci, CURLOPT_HEADER, FALSE);
     curl_setopt($ci, CURLINFO_HEADER_OUT, TRUE);
     curl_setopt($ci, CURLINFO_HEADER_OUT, TRUE);
     if ($multipart) {
         curl_setopt($ci, CURLOPT_HTTPHEADER, array('Expect:', $auth_header));
     } elseif ($content_type) {
         curl_setopt($ci, CURLOPT_HTTPHEADER, array('Expect:', "Content-Type: {$content_type}"));
     }
     if ($this->curl_proxy) {
         curl_setopt($ci, CURLOPT_PROXY, $this->curl_proxy);
     }
     switch ($method) {
         case 'POST':
             curl_setopt($ci, CURLOPT_POST, TRUE);
             if (!empty($postfields)) {
                 curl_setopt($ci, CURLOPT_POSTFIELDS, $postfields);
             }
             if (!empty($auth_header) && $this->curl_auth_header && !$multipart) {
                 curl_setopt($ci, CURLOPT_HTTPHEADER, array('Content-Type: application/atom+xml', $auth_header));
             }
             break;
         case 'DELETE':
             curl_setopt($ci, CURLOPT_CUSTOMREQUEST, 'DELETE');
             if (!empty($postfields)) {
                 $url = "{$url}?{$postfields}";
             }
     }
     curl_setopt($ci, CURLOPT_URL, $url);
     $response = curl_exec($ci);
     $this->http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);
     $this->http_info = array_merge($this->http_info, curl_getinfo($ci));
     curl_close($ci);
     //-
     Hybrid_Error::deleteApiError();
     if ($this->http_code != 200) {
         Hybrid_Error::setApiError($this->http_code . '. ' . preg_replace('/\\s+/', ' ', $response));
     }
     if (defined('WORDPRESS_SOCIAL_LOGIN_DEBUG_API_CALLS')) {
         do_action('wsl_log_provider_api_call', 'OAuth1', $url, $method, $postfields, $this->http_code, $this->http_info, $response);
     }
     //-
     return $response;
 }
开发者ID:Vatia13,项目名称:dancesport,代码行数:58,代码来源:OAuth1Client.php

示例3: fetch

 /**
  * General data send/request method.
  * 
  * @param str $method 
  *    The data communication method.	 
  * @param str $url 
  *    The Linkedin API endpoint to connect with.
  * @param str $data
  *    [OPTIONAL] The data to send to LinkedIn.
  * @param arr $parameters 
  *    [OPTIONAL] Addition OAuth parameters to send to LinkedIn.
  *        
  * @return arr 
  *    Array containing:
  * 
  *           array(
  *             'info'      =>	Connection information,
  *             'linkedin'  => LinkedIn response,  
  *             'oauth'     => The OAuth request string that was sent to LinkedIn	 
  *           )	 
  */
 function fetch($method, $url, $data = NULL, $parameters = array())
 {
     // check for cURL
     if (!extension_loaded('curl')) {
         // cURL not present
         throw new LinkedInException('LinkedIn->fetch(): PHP cURL extension does not appear to be loaded/present.');
     }
     try {
         // generate OAuth values
         $oauth_consumer = new OAuthConsumer($this->getApplicationKey(), $this->getApplicationSecret(), $this->getCallbackUrl());
         $oauth_token = $this->getToken();
         $oauth_token = !is_null($oauth_token) ? new OAuthToken($oauth_token['oauth_token'], $oauth_token['oauth_token_secret']) : NULL;
         $defaults = array('oauth_version' => self::_API_OAUTH_VERSION);
         $parameters = array_merge($defaults, $parameters);
         // generate OAuth request
         $oauth_req = OAuthRequest::from_consumer_and_token($oauth_consumer, $oauth_token, $method, $url, $parameters);
         $oauth_req->sign_request(new OAuthSignatureMethod_HMAC_SHA1(), $oauth_consumer, $oauth_token);
         // start cURL, checking for a successful initiation
         if (!($handle = curl_init())) {
             // cURL failed to start
             throw new LinkedInException('LinkedIn->fetch(): cURL did not initialize properly.');
         }
         // set cURL options, based on parameters passed
         curl_setopt($handle, CURLOPT_CUSTOMREQUEST, $method);
         curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE);
         curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, FALSE);
         curl_setopt($handle, CURLOPT_URL, $url);
         curl_setopt($handle, CURLOPT_VERBOSE, FALSE);
         if (isset(Hybrid_Auth::$config["proxy"])) {
             curl_setopt($handle, CURLOPT_PROXY, Hybrid_Auth::$config["proxy"]);
         }
         // configure the header we are sending to LinkedIn - http://developer.linkedin.com/docs/DOC-1203
         $header = array($oauth_req->to_header(self::_API_OAUTH_REALM));
         if (is_null($data)) {
             // not sending data, identify the content type
             $header[] = 'Content-Type: text/plain; charset=UTF-8';
             switch ($this->getResponseFormat()) {
                 case self::_RESPONSE_JSON:
                     $header[] = 'x-li-format: json';
                     break;
                 case self::_RESPONSE_JSONP:
                     $header[] = 'x-li-format: jsonp';
                     break;
             }
         } else {
             $header[] = 'Content-Type: text/xml; charset=UTF-8';
             curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
         }
         curl_setopt($handle, CURLOPT_HTTPHEADER, $header);
         // set the last url, headers
         $this->last_request_url = $url;
         $this->last_request_headers = $header;
         // gather the response
         $return_data['linkedin'] = curl_exec($handle);
         $return_data['info'] = curl_getinfo($handle);
         $return_data['oauth']['header'] = $oauth_req->to_header(self::_API_OAUTH_REALM);
         $return_data['oauth']['string'] = $oauth_req->base_string;
         //-
         $http_code = curl_getinfo($handle, CURLINFO_HTTP_CODE);
         Hybrid_Error::deleteApiError();
         if ($http_code != 200) {
             Hybrid_Error::setApiError($http_code . '. ' . preg_replace('/\\s+/', ' ', $return_data['linkedin']));
         }
         if (defined('WORDPRESS_SOCIAL_LOGIN_DEBUG_API_CALLS')) {
             do_action('wsl_log_provider_api_call', 'OAuth1.LinkedIn', $url, $method, $data, $http_code, $this->http_info, $return_data['linkedin']);
         }
         //-
         // check for throttling
         if (self::isThrottled($return_data['linkedin'])) {
             throw new LinkedInException('LinkedIn->fetch(): throttling limit for this user/application has been reached for LinkedIn resource - ' . $url);
         }
         //TODO - add check for NO response (http_code = 0) from cURL
         // close cURL connection
         curl_close($handle);
         // no exceptions thrown, return the data
         return $return_data;
     } catch (OAuthException $e) {
         // oauth exception raised
         throw new LinkedInException('OAuth exception caught: ' . $e->getMessage());
//.........这里部分代码省略.........
开发者ID:designwall,项目名称:dw-social-login,代码行数:101,代码来源:LinkedIn.php

示例4: processAuthDone

 /**
  * 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;
 }
开发者ID:rwohleb,项目名称:hybridauth,代码行数:32,代码来源:Endpoint.php

示例5: makeRequest

 /**
  * Makes an HTTP request. This method can be overridden by subclasses if
  * developers want to do fancier things or use something other than curl to
  * make the request.
  *
  * @param string $url The URL to make the request to
  * @param array $params The parameters to use for the POST body
  * @param CurlHandler $ch Initialized curl handle
  *
  * @return string The response text
  */
 protected function makeRequest($url, $params, $ch = null)
 {
     if (!$ch) {
         $ch = curl_init();
     }
     $opts = self::$CURL_OPTS;
     if ($this->getFileUploadSupport()) {
         $opts[CURLOPT_POSTFIELDS] = $params;
     } else {
         $opts[CURLOPT_POSTFIELDS] = http_build_query($params, null, '&');
     }
     $opts[CURLOPT_URL] = $url;
     // disable the 'Expect: 100-continue' behaviour. This causes CURL to wait
     // for 2 seconds if the server does not support this header.
     if (isset($opts[CURLOPT_HTTPHEADER])) {
         $existing_headers = $opts[CURLOPT_HTTPHEADER];
         $existing_headers[] = 'Expect:';
         $opts[CURLOPT_HTTPHEADER] = $existing_headers;
     } else {
         $opts[CURLOPT_HTTPHEADER] = array('Expect:');
     }
     curl_setopt_array($ch, $opts);
     $result = curl_exec($ch);
     $errno = curl_errno($ch);
     // CURLE_SSL_CACERT || CURLE_SSL_CACERT_BADFILE
     if ($errno == 60 || $errno == 77) {
         self::errorLog('Invalid or no certificate authority found, ' . 'using bundled information');
         curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . DIRECTORY_SEPARATOR . 'fb_ca_chain_bundle.crt');
         $result = curl_exec($ch);
     }
     // With dual stacked DNS responses, it's possible for a server to
     // have IPv6 enabled but not have IPv6 connectivity.  If this is
     // the case, curl will try IPv4 first and if that fails, then it will
     // fall back to IPv6 and the error EHOSTUNREACH is returned by the
     // operating system.
     if ($result === false && empty($opts[CURLOPT_IPRESOLVE])) {
         $matches = array();
         $regex = '/Failed to connect to ([^:].*): Network is unreachable/';
         if (preg_match($regex, curl_error($ch), $matches)) {
             if (strlen(@inet_pton($matches[1])) === 16) {
                 self::errorLog('Invalid IPv6 configuration on server, ' . 'Please disable or get native IPv6 on your server.');
                 self::$CURL_OPTS[CURLOPT_IPRESOLVE] = CURL_IPRESOLVE_V4;
                 curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
                 $result = curl_exec($ch);
             }
         }
     }
     //-
     $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
     Hybrid_Error::deleteApiError();
     if ($http_code != 200) {
         Hybrid_Error::setApiError($http_code . '. ' . preg_replace('/\\s+/', ' ', $result));
     }
     if (defined('WORDPRESS_SOCIAL_LOGIN_DEBUG_API_CALLS')) {
         do_action('wsl_log_provider_api_call', 'OAuth2.Facebook', $opts[CURLOPT_URL], null, $opts[CURLOPT_POSTFIELDS], $http_code, curl_getinfo($ch), $result);
     }
     //-
     if ($result === false) {
         $e = new FacebookApiException(array('error_code' => curl_errno($ch), 'error' => array('message' => curl_error($ch), 'type' => 'CurlException')));
         curl_close($ch);
         throw $e;
     }
     curl_close($ch);
     return $result;
 }
开发者ID:sdh100shaun,项目名称:pantheon,代码行数:76,代码来源:base_facebook.php

示例6: wsl_component_authtest


//.........这里部分代码省略.........
								<?php 
        }
        ?>
							</table>
						</div>
					</div>

					<?php 
        $console = false;
        if (!isset($adapter->openidIdentifier)) {
            ?>
						<div class="stuffbox">
							<h3>
								<label><?php 
            _wsl_e("Connected adapter console", 'wordpress-social-login');
            ?>
</label>
							</h3>
							<div class="inside">
								<?php 
            $path = isset($adapter->api->api_base_url) ? $adapter->api->api_base_url : '';
            $path = isset($_REQUEST['console-path']) ? $_REQUEST['console-path'] : $path;
            $method = isset($_REQUEST['console-method']) ? $_REQUEST['console-method'] : '';
            $query = isset($_REQUEST['console-query']) ? $_REQUEST['console-query'] : '';
            $response = '';
            if ($path && in_array($method, array('GET', 'POST'))) {
                $console = true;
                try {
                    if ($method == 'GET') {
                        $response = $adapter->api->get($path . ($query ? '?' . $query : ''));
                    } else {
                        $response = $adapter->api->get($path, $query);
                    }
                    $response = $response ? $response : Hybrid_Error::getApiError();
                } catch (Exception $e) {
                    $response = "ERROR: " . $e->getMessage();
                }
            }
            ?>
								<form action="" method="post"/>
									<table class="wp-list-table widefat">
										<tr>
											<th width="200"><label><?php 
            _wsl_e("Path", 'wordpress-social-login');
            ?>
</label></th>
											<td><input type="text" style="width:96%" name="console-path" value="<?php 
            echo htmlentities($path);
            ?>
"><a href="https://apigee.com/providers" target="_blank"><img src="<?php 
            echo $assets_base_url . 'question.png';
            ?>
" style="vertical-align: text-top;" /></a></td>
										</tr>
										<tr>
											<th width="200"><label><?php 
            _wsl_e("Method", 'wordpress-social-login');
            ?>
</label></th>
											<td><select style="width:100px" name="console-method"><option value="GET" <?php 
            if ($method == 'GET') {
                echo 'selected';
            }
            ?>
>GET</option><!-- <option value="POST" <?php 
            if ($method == 'POST') {
开发者ID:kingafrojoe,项目名称:wordpress-social-login,代码行数:67,代码来源:index.php

示例7: initialize

 /**
  * Try to initialize Hybrid_Auth with given $config hash or file
  */
 public static function initialize($config)
 {
     if (!session_id()) {
         throw new Exception("Hybriauth require the use of 'session_start()' at the start of your script.", 1);
     }
     if (!is_array($config) && !file_exists($config)) {
         throw new Exception("Hybriauth config does not exist on the given path.", 1);
     }
     if (!is_array($config)) {
         $config = (include $config);
     }
     // build some need'd paths
     $config["path_base"] = realpath(dirname(__FILE__)) . "/";
     $config["path_libraries"] = $config["path_base"] . "thirdparty/";
     $config["path_resources"] = $config["path_base"] . "resources/";
     $config["path_providers"] = $config["path_base"] . "Providers/";
     // reset debug mode
     if (!isset($config["debug_mode"])) {
         $config["debug_mode"] = false;
         $config["debug_file"] = null;
     }
     # load hybridauth required files, a autoload is on the way...
     require_once $config["path_base"] . "Error.php";
     require_once $config["path_base"] . "Logger.php";
     require_once $config["path_base"] . "Storage.php";
     require_once $config["path_base"] . "Provider_Adapter.php";
     require_once $config["path_base"] . "Provider_Model.php";
     require_once $config["path_base"] . "Provider_Model_OpenID.php";
     require_once $config["path_base"] . "Provider_Model_OAuth1.php";
     require_once $config["path_base"] . "Provider_Model_OAuth2.php";
     require_once $config["path_base"] . "User.php";
     require_once $config["path_base"] . "User_Profile.php";
     require_once $config["path_base"] . "User_Contact.php";
     require_once $config["path_base"] . "User_Activity.php";
     // hash given config
     Hybrid_Auth::$config = $config;
     // start session storage mng
     Hybrid_Auth::$store = new Hybrid_Storage();
     // instace of errors mng
     Hybrid_Auth::$error = new Hybrid_Error();
     // instace of log mng
     Hybrid_Auth::$logger = new Hybrid_Logger();
     // store php session and version..
     $_SESSION["HA::PHP_SESSION_ID"] = session_id();
     $_SESSION["HA::VERSION"] = Hybrid_Auth::$version;
     // almost done, check for errors then move on
     Hybrid_Logger::info("Enter Hybrid_Auth::initialize()");
     Hybrid_Logger::info("Hybrid_Auth::initialize(). Hybrid_Auth used version: " . Hybrid_Auth::$version);
     Hybrid_Logger::info("Hybrid_Auth::initialize(). Hybrid_Auth called from: " . Hybrid_Auth::getCurrentUrl());
     Hybrid_Logger::debug("Hybrid_Auth initialize. dump used config: ", serialize($config));
     Hybrid_Logger::debug("Hybrid_Auth initialize. dump current session: ", serialize($_SESSION));
     Hybrid_Logger::info("Hybrid_Auth initialize: check if any error is stored on the endpoint...");
     if (Hybrid_Error::hasError()) {
         $m = Hybrid_Error::getErrorMessage();
         $c = Hybrid_Error::getErrorCode();
         $p = Hybrid_Error::getErrorPrevious();
         Hybrid_Logger::error("Hybrid_Auth initialize: A stored Error found, Throw an new Exception and delete it from the store: Error#{$c}, '{$m}'");
         Hybrid_Error::clearError();
         if (!$p instanceof Exception) {
             $p = null;
         }
         //TODO: Is this check realy needed?
         throw new Exception($m, $c, $p);
     }
     Hybrid_Logger::info("Hybrid_Auth initialize: no error found. initialization succeed.");
     // Endof initialize
 }
开发者ID:ValenokPC,项目名称:tabernacms,代码行数:70,代码来源:Auth.php

示例8: processAuthDone

 /**
  * 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;
 }
开发者ID:a303,项目名称:smart_lp2,代码行数:26,代码来源:Endpoint.php

示例9: processAuthDone

 /**
  * 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;
 }
开发者ID:designwall,项目名称:dw-social-login,代码行数:25,代码来源:Endpoint.php

示例10: getLatestApiError

 /**
  * Return the latest api error
  */
 public static function getLatestApiError()
 {
     return Hybrid_Error::getErrorMessage();
 }
开发者ID:Vatia13,项目名称:dancesport,代码行数:7,代码来源:Auth.php

示例11: request

 function request($url, $params = false, $type = "GET")
 {
     if ($type == "GET") {
         $url = $url . (strpos($url, '?') ? '&' : '?') . http_build_query($params, '', '&');
     }
     $this->http_info = array();
     $ch = curl_init();
     curl_setopt($ch, CURLOPT_URL, $url);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     curl_setopt($ch, CURLOPT_TIMEOUT, $this->curl_time_out);
     curl_setopt($ch, CURLOPT_USERAGENT, $this->curl_useragent);
     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $this->curl_connect_time_out);
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $this->curl_ssl_verifypeer);
     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, $this->curl_ssl_verifyhost);
     curl_setopt($ch, CURLOPT_HTTPHEADER, $this->curl_header);
     if ($this->curl_proxy) {
         curl_setopt($ch, CURLOPT_PROXY, $this->curl_proxy);
     }
     if ($type == "POST") {
         curl_setopt($ch, CURLOPT_POST, 1);
         if ($params) {
             curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
         }
     }
     $response = curl_exec($ch);
     $this->http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
     $this->http_info = array_merge($this->http_info, curl_getinfo($ch));
     curl_close($ch);
     //-
     Hybrid_Error::deleteApiError();
     if ($this->http_code != 200) {
         Hybrid_Error::setApiError($this->http_code . '. ' . preg_replace('/\\s+/', ' ', $response));
     }
     if (defined('WORDPRESS_SOCIAL_LOGIN_DEBUG_API_CALLS')) {
         do_action('wsl_log_provider_api_call', 'OAuth2', $url, $type, $params, $this->http_code, $this->http_info, $response);
     }
     //-
     return $response;
 }
开发者ID:designwall,项目名称:dw-social-login,代码行数:39,代码来源:OAuth2Client.php

示例12: request_curl

 protected function request_curl($url, $method = 'GET', $params = array(), $update_claimed_id)
 {
     $params = http_build_query($params, '', '&');
     $curl = curl_init($url . ($method == 'GET' && $params ? '?' . $params : ''));
     curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
     curl_setopt($curl, CURLOPT_HEADER, false);
     curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
     curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept: application/xrds+xml, */*'));
     if (!empty($this->proxy)) {
         curl_setopt($curl, CURLOPT_PROXY, $this->proxy['host']);
         if (!empty($this->proxy['port'])) {
             curl_setopt($curl, CURLOPT_PROXYPORT, $this->proxy['port']);
         }
         if (!empty($this->proxy['user'])) {
             curl_setopt($curl, CURLOPT_PROXYUSERPWD, $this->proxy['user'] . ':' . $this->proxy['pass']);
         }
     }
     if ($this->verify_peer !== null) {
         curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, $this->verify_peer);
         if ($this->capath) {
             curl_setopt($curl, CURLOPT_CAPATH, $this->capath);
         }
         if ($this->cainfo) {
             curl_setopt($curl, CURLOPT_CAINFO, $this->cainfo);
         }
     }
     if ($method == 'POST') {
         curl_setopt($curl, CURLOPT_POST, true);
         curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
     } elseif ($method == 'HEAD') {
         curl_setopt($curl, CURLOPT_HEADER, true);
         curl_setopt($curl, CURLOPT_NOBODY, true);
     } else {
         curl_setopt($curl, CURLOPT_HEADER, true);
         curl_setopt($curl, CURLOPT_HTTPGET, true);
     }
     $response = curl_exec($curl);
     if ($method == 'HEAD' && curl_getinfo($curl, CURLINFO_HTTP_CODE) == 405) {
         curl_setopt($curl, CURLOPT_HTTPGET, true);
         $response = curl_exec($curl);
         $response = substr($response, 0, strpos($response, "\r\n\r\n"));
     }
     //-
     $http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
     Hybrid_Error::deleteApiError();
     if ($http_code != 200) {
         Hybrid_Error::setApiError($http_code . '. ' . preg_replace('/\\s+/', ' ', $response));
     }
     if (defined('WORDPRESS_SOCIAL_LOGIN_DEBUG_API_CALLS')) {
         do_action('wsl_log_provider_api_call', 'OpenID', $url . ($method == 'GET' && $params ? '?' . $params : ''), $method, $params, curl_getinfo($curl), curl_getinfo($curl), $response);
     }
     //-
     if ($method == 'HEAD' || $method == 'GET') {
         $header_response = $response;
         # If it's a GET request, we want to only parse the header part.
         if ($method == 'GET') {
             $header_response = substr($response, 0, strpos($response, "\r\n\r\n"));
         }
         $headers = array();
         foreach (explode("\n", $header_response) as $header) {
             $pos = strpos($header, ':');
             if ($pos !== false) {
                 $name = strtolower(trim(substr($header, 0, $pos)));
                 $headers[$name] = trim(substr($header, $pos + 1));
             }
         }
         if ($update_claimed_id) {
             # Updating claimed_id in case of redirections.
             $effective_url = curl_getinfo($curl, CURLINFO_EFFECTIVE_URL);
             if ($effective_url != $url) {
                 $this->identity = $this->claimed_id = $effective_url;
             }
         }
         if ($method == 'HEAD') {
             return $headers;
         } else {
             $this->headers = $headers;
         }
     }
     if (curl_errno($curl)) {
         throw new ErrorException(curl_error($curl), curl_errno($curl));
     }
     return $response;
 }
开发者ID:designwall,项目名称:dw-social-login,代码行数:85,代码来源:LightOpenID.php

示例13: processAuthDone

 /**
  * 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 '';
 }
开发者ID:bendasvadim,项目名称:NewsModxBox,代码行数:32,代码来源:endpoint.class.php

示例14: wsl_process_login_render_error_page

/**
* Display an error message in case user authentication fails
*/
function wsl_process_login_render_error_page($e, $config = null, $provider = null, $adapter = null)
{
    // HOOKABLE:
    do_action("wsl_process_login_render_error_page", $e, $config, $provider, $adapter);
    $assets_base_url = WORDPRESS_SOCIAL_LOGIN_PLUGIN_URL . 'assets/img/';
    $message = _wsl__("Unspecified error!", 'wordpress-social-login');
    $notes = "";
    $apierror = substr($e->getMessage(), 0, 145);
    switch ($e->getCode()) {
        case 0:
            $message = _wsl__("Unspecified error.", 'wordpress-social-login');
            break;
        case 1:
            $message = _wsl__("WordPress Social Login is not properly configured.", 'wordpress-social-login');
            break;
        case 2:
            $message = sprintf(__wsl__("WordPress Social Login is not properly configured.<br /> <b>%s</b> need to be properly configured.", 'wordpress-social-login'), $provider);
            break;
        case 3:
            $message = _wsl__("Unknown or disabled provider.", 'wordpress-social-login');
            break;
        case 4:
            $message = sprintf(_wsl__("WordPress Social Login is not properly configured.<br /> <b>%s</b> requires your application credentials.", 'wordpress-social-login'), $provider);
            $notes = sprintf(_wsl__("<b>What does this error mean ?</b><br />Most likely, you didn't setup the correct application credentials for this provider. These credentials are required in order for <b>%s</b> users to access your website and for WordPress Social Login to work.", 'wordpress-social-login'), $provider) . _wsl__('<br />Instructions for use can be found in the <a href="http://miled.github.io/wordpress-social-login/networks.html" target="_blank">User Manual</a>.', 'wordpress-social-login');
            break;
        case 5:
            $message = sprintf(_wsl__("Authentication failed. Either you have cancelled the authentication or <b>%s</b> refused the connection.", 'wordpress-social-login'), $provider);
            break;
        case 6:
            $message = sprintf(_wsl__("Request failed. Either you have cancelled the authentication or <b>%s</b> refused the connection.", 'wordpress-social-login'), $provider);
            break;
        case 7:
            $message = _wsl__("You're not connected to the provider.", 'wordpress-social-login');
            break;
        case 8:
            $message = _wsl__("Provider does not support this feature.", 'wordpress-social-login');
            break;
    }
    if (is_object($adapter)) {
        $adapter->logout();
    }
    // provider api response
    if (class_exists('Hybrid_Error', false) && Hybrid_Error::getApiError()) {
        $tmp = Hybrid_Error::getApiError();
        $apierror = $apierror . "\n" . '<br />' . $tmp;
        // network issue
        if (trim($tmp) == '0.') {
            $apierror = "Could not establish connection to provider API";
        }
    }
    return wsl_render_error_page($message, $notes, $provider, $apierror, $e);
}
开发者ID:NickIvanter,项目名称:wordpress-social-login,代码行数:55,代码来源:wsl.authentication.php

示例15: processAuthDone

 /**
  * 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 '';
 }
开发者ID:Tramp1357,项目名称:atlasorg,代码行数:51,代码来源:endpoint.class.php


注:本文中的Hybrid_Error类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。