if (is_array($requestBody)) { $requestBody = http_build_query($requestBody, '', '&'); } $extraHeaders['Content-length'] = 'Content-length: '.strlen($requestBody); $context = $this->generateStreamContext($requestBody, $extraHeaders, $method); $level = error_reporting(0); $response = file_get_contents($endpoint->getAbsoluteUri(), false, $context); error_reporting($level); if (false === $response) { $lastError = error_get_last(); if (is_null($lastError)) { throw new TokenResponseException( 'Failed to request resource. HTTP Code: ' . ((isset($http_response_header[0]))?$http_response_header[0]:'No response') ); } throw new TokenResponseException($lastError['message']); } return $response; } private function generateStreamContext($body, $headers, $method) { return stream_context_create( array( 'http' => array( 'method' => $method, 'header' => implode("\r\n", array_values($headers)), 'content' => $body, 'protocol_version' => '1.1', 'user_agent' => $this->userAgent, 'max_redirects' => $this->maxRedirects, 'timeout' => $this->timeout ), ) );
SignatureInterface $signature, UriInterface $baseApiUri = null ) { parent::__construct($credentials, $httpClient, $storage); $this->signature = $signature; $this->baseApiUri = $baseApiUri; $this->signature->setHashingAlgorithm($this->getSignatureMethod()); } /** * {@inheritDoc} */ public function requestRequestToken() { $authorizationHeader = array('Authorization' => $this->buildAuthorizationHeaderForTokenRequest()); $headers = array_merge($authorizationHeader, $this->getExtraOAuthHeaders()); $responseBody = $this->httpClient->retrieveResponse($this->getRequestTokenEndpoint(), array(), $headers); $token = $this->parseRequestTokenResponse($responseBody); $this->storage->storeAccessToken($this->service(), $token); return $token; } /** * {@inheritdoc} */ public function getAuthorizationUri(array $additionalParameters = array()) { // Build the url $url = clone $this->getAuthorizationEndpoint(); foreach ($additionalParameters as $key => $val) { $url->addToQuery($key, $val); } return $url; }
$credentials = new OAuth\Common\Consumer\Credentials( Config::get("services.{$provider}.id"), Config::get("services.{$provider}.secret"), App::url("oauth.php?provider={$provider}") ); $scope = isset($scopes[$provider]) ? $scopes[$provider] : array(); $storage = new OAuth\Common\Storage\Session; $factory = new OAuth\ServiceFactory; // Use cURL // $factory->setHttpClient(new OAuth\Common\Http\Client\CurlClient); $service = $factory->createService($provider, $credentials, $storage, $scope); if ($provider === 'twitter') { if (empty($_GET['oauth_token'])) { $oauth_token = $service->requestRequestToken()->getRequestToken(); $authUrl = $service->getAuthorizationUri(compact('oauth_token')); } else { try { $token = $storage->retrieveAccessToken(ucfirst($provider)); $service->requestAccessToken( @$_GET['oauth_token'], @$_GET['oauth_verifier'], $token->getRequestTokenSecret() ); } catch(Exception $e) { exit('Oauth Retrieve Access Token Error.'); } } } else { if (empty($_GET['code'])) { $authUrl = $service->getAuthorizationUri(); } else { try { $state = isset($_GET['state']) ? $_GET['state'] : null; $service->requestAccessToken($_GET['code'], $state);
Key | Value |
provider |
Key | Value |
lusitanian-oauth-token | Array ( ) |
lusitanian-oauth-state | Array ( ) |
Key | Value |
REDIRECT_UNIQUE_ID | Zfj_yqkc3tFobp-UbYoUPgAAABk |
REDIRECT_MMDB_ADDR | 54.205.179.155 |
REDIRECT_GEOIP_ADDR | 54.205.179.155 |
REDIRECT_MMDB_INFO | result found |
REDIRECT_GEOIP_CITY | Ashburn |
REDIRECT_GEOIP_LONGITUDE | -77.47280 |
REDIRECT_GEOIP_CONTINENT_CODE | NA |
REDIRECT_GEOIP_LATITUDE | 39.04810 |
REDIRECT_GEOIP_POSTAL_CODE | 20149 |
REDIRECT_GEOIP_COUNTRY_CODE | US |
REDIRECT_GEOIP_COUNTRY_NAME | United States |
REDIRECT_GEOIP_REGION | VA |
REDIRECT_HTTPS | on |
REDIRECT_PERL_USE_UNSAFE_INC | 1 |
REDIRECT_PHPRC | /home/w/wwwxp/phone-960.ru/public_html/cgi-bin/php.ini |
REDIRECT_HANDLER | php-cgi |
REDIRECT_STATUS | 200 |
UNIQUE_ID | Zfj_yqkc3tFobp-UbYoUPgAAABk |
MMDB_ADDR | 54.205.179.155 |
GEOIP_ADDR | 54.205.179.155 |
MMDB_INFO | result found |
GEOIP_CITY | Ashburn |
GEOIP_LONGITUDE | -77.47280 |
GEOIP_CONTINENT_CODE | NA |
GEOIP_LATITUDE | 39.04810 |
GEOIP_POSTAL_CODE | 20149 |
GEOIP_COUNTRY_CODE | US |
GEOIP_COUNTRY_NAME | United States |
GEOIP_REGION | VA |
HTTPS | on |
PERL_USE_UNSAFE_INC | 1 |
PHPRC | /home/w/wwwxp/phone-960.ru/public_html/cgi-bin/php.ini |
HTTP_HOST | phone-960.ru |
HTTP_X_SERVER_ADDR | 87.236.16.171 |
HTTP_X_FORWARDED_PROTO | https |
HTTP_X_REAL_IP | 54.205.179.155 |
HTTP_ACCEPT | */* |
HTTP_USER_AGENT | claudebot |
PATH | /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
SERVER_SIGNATURE | <address>Apache/2.4.55 (Unix) Server at phone-960.ru Port 80</address> |
SERVER_SOFTWARE | Apache/2.4.55 (Unix) |
SERVER_NAME | phone-960.ru |
SERVER_ADDR | 87.236.16.171 |
SERVER_PORT | 443 |
REQUEST_SCHEME | https |
REMOTE_ADDR | 54.205.179.155 |
DOCUMENT_ROOT | /home/w/wwwxp/phone-960.ru/public_html |
CONTEXT_PREFIX | /php-cgi |
CONTEXT_DOCUMENT_ROOT | /usr/local/php-cgi/5.6/bin |
SERVER_ADMIN | webmaster@phone-960.ru |
SCRIPT_FILENAME | /home/w/wwwxp/phone-960.ru/public_html/oauth.php |
REMOTE_PORT | 56729 |
REDIRECT_URL | /oauth.php |
REDIRECT_QUERY_STRING | provider=twitter |
GATEWAY_INTERFACE | CGI/1.1 |
SERVER_PROTOCOL | HTTP/1.1 |
REQUEST_METHOD | GET |
QUERY_STRING | provider=twitter |
REQUEST_URI | /oauth.php?provider=twitter |
SCRIPT_NAME | /oauth.php |
ORIG_SCRIPT_FILENAME | /usr/local/php-cgi/5.6/bin/php-cgi |
ORIG_PATH_INFO | /oauth.php |
ORIG_PATH_TRANSLATED | /home/w/wwwxp/phone-960.ru/public_html/oauth.php |
ORIG_SCRIPT_NAME | /php-cgi/php-cgi |
PHP_SELF | /oauth.php |
REQUEST_TIME_FLOAT | 1710817226.8816 |
REQUEST_TIME | 1710817226 |
argv | Array ( [0] => provider=twitter ) |
argc | 1 |
Key | Value |
REDIRECT_UNIQUE_ID | Zfj_yqkc3tFobp-UbYoUPgAAABk |
REDIRECT_MMDB_ADDR | 54.205.179.155 |
REDIRECT_GEOIP_ADDR | 54.205.179.155 |
REDIRECT_MMDB_INFO | result found |
REDIRECT_GEOIP_CITY | Ashburn |
REDIRECT_GEOIP_LONGITUDE | -77.47280 |
REDIRECT_GEOIP_CONTINENT_CODE | NA |
REDIRECT_GEOIP_LATITUDE | 39.04810 |
REDIRECT_GEOIP_POSTAL_CODE | 20149 |
REDIRECT_GEOIP_COUNTRY_CODE | US |
REDIRECT_GEOIP_COUNTRY_NAME | United States |
REDIRECT_GEOIP_REGION | VA |
REDIRECT_HTTPS | on |
REDIRECT_PERL_USE_UNSAFE_INC | 1 |
REDIRECT_PHPRC | /home/w/wwwxp/phone-960.ru/public_html/cgi-bin/php.ini |
REDIRECT_HANDLER | php-cgi |
REDIRECT_STATUS | 200 |
UNIQUE_ID | Zfj_yqkc3tFobp-UbYoUPgAAABk |
MMDB_ADDR | 54.205.179.155 |
GEOIP_ADDR | 54.205.179.155 |
MMDB_INFO | result found |
GEOIP_CITY | Ashburn |
GEOIP_LONGITUDE | -77.47280 |
GEOIP_CONTINENT_CODE | NA |
GEOIP_LATITUDE | 39.04810 |
GEOIP_POSTAL_CODE | 20149 |
GEOIP_COUNTRY_CODE | US |
GEOIP_COUNTRY_NAME | United States |
GEOIP_REGION | VA |
HTTPS | on |
PERL_USE_UNSAFE_INC | 1 |
PHPRC | /home/w/wwwxp/phone-960.ru/public_html/cgi-bin/php.ini |
HTTP_HOST | phone-960.ru |
HTTP_X_SERVER_ADDR | 87.236.16.171 |
HTTP_X_FORWARDED_PROTO | https |
HTTP_X_REAL_IP | 54.205.179.155 |
HTTP_ACCEPT | */* |
HTTP_USER_AGENT | claudebot |
PATH | /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
SERVER_SIGNATURE | <address>Apache/2.4.55 (Unix) Server at phone-960.ru Port 80</address> |
SERVER_SOFTWARE | Apache/2.4.55 (Unix) |
SERVER_NAME | phone-960.ru |
SERVER_ADDR | 87.236.16.171 |
SERVER_PORT | 443 |
REQUEST_SCHEME | https |
REMOTE_ADDR | 54.205.179.155 |
DOCUMENT_ROOT | /home/w/wwwxp/phone-960.ru/public_html |
CONTEXT_PREFIX | /php-cgi |
CONTEXT_DOCUMENT_ROOT | /usr/local/php-cgi/5.6/bin |
SERVER_ADMIN | webmaster@phone-960.ru |
SCRIPT_FILENAME | /home/w/wwwxp/phone-960.ru/public_html/oauth.php |
REMOTE_PORT | 56729 |
REDIRECT_URL | /oauth.php |
REDIRECT_QUERY_STRING | provider=twitter |
GATEWAY_INTERFACE | CGI/1.1 |
SERVER_PROTOCOL | HTTP/1.1 |
REQUEST_METHOD | GET |
QUERY_STRING | provider=twitter |
REQUEST_URI | /oauth.php?provider=twitter |
SCRIPT_NAME | /oauth.php |
ORIG_SCRIPT_FILENAME | /usr/local/php-cgi/5.6/bin/php-cgi |
ORIG_PATH_INFO | /oauth.php |
ORIG_PATH_TRANSLATED | /home/w/wwwxp/phone-960.ru/public_html/oauth.php |
ORIG_SCRIPT_NAME | /php-cgi/php-cgi |