} /** * Returns default cURL options. * @return array cURL options. */ protected function defaultCurlOptions() { return [ CURLOPT_USERAGENT => Yii::$app->name . ' OAuth ' . $this->version . ' Client', CURLOPT_CONNECTTIMEOUT => 30, CURLOPT_TIMEOUT => 30, CURLOPT_SSL_VERIFYPEER => false, ]; } /** * Processes raw response converting it to actual data. * @param string $rawResponse raw response.
* Returns default cURL options. * @return array cURL options. */ protected function defaultCurlOptions() { return [ CURLOPT_USERAGENT => Yii::$app->name . ' OAuth ' . $this->version . ' Client', CURLOPT_CONNECTTIMEOUT => 30, CURLOPT_TIMEOUT => 30, CURLOPT_SSL_VERIFYPEER => false, ]; }
* @return array response. * @throws Exception on failure. */ protected function sendRequest($method, $url, array $params = [], array $headers = []) { $curlOptions = $this->mergeCurlOptions( $this->defaultCurlOptions(), $this->getCurlOptions(), [ CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => true, CURLOPT_URL => $url, ],
*/ protected function sendSignedRequest($method, $url, array $params = [], array $headers = []) { $params = array_merge($params, $this->generateCommonRequestParams()); $params = $this->signRequest($method, $url, $params); return $this->sendRequest($method, $url, $params, $headers); } /** * Composes HTTP request CUrl options, which will be merged with the default ones. * @param string $method request type. * @param string $url request URL.
'oauth_callback' => $this->getReturnUrl(), //'xoauth_displayname' => Yii::$app->name, ]; if (!empty($this->scope)) { $defaultParams['scope'] = $this->scope; } $response = $this->sendSignedRequest($this->requestTokenMethod, $this->requestTokenUrl, array_merge($defaultParams, $params)); $token = $this->createToken([ 'params' => $response ]); $this->setState('requestToken', $token); return $token;
if (isset($_REQUEST['oauth_token'])) { $oauthToken = $_REQUEST['oauth_token']; } if (!isset($oauthToken)) { // Get request token. $requestToken = $client->fetchRequestToken(); // Get authorization URL. $url = $client->buildAuthUrl($requestToken); // Redirect to authorization URL. return Yii::$app->getResponse()->redirect($url); } else { // Upgrade to access token.
{ if ($client instanceof OpenId) { return $this->authOpenId($client); } elseif ($client instanceof OAuth2) { return $this->authOAuth2($client); } elseif ($client instanceof OAuth1) { return $this->authOAuth1($client); } else { throw new NotSupportedException('Provider "' . get_class($client) . '" is not supported.'); } } /**
$collection = Yii::$app->get($this->clientCollection); if (!$collection->hasClient($clientId)) { throw new NotFoundHttpException("Unknown auth client '{$clientId}'"); } $client = $collection->getClient($clientId); return $this->auth($client); } else { throw new NotFoundHttpException(); } } /**
$args = $this->controller->bindActionParams($this, $params); Yii::trace('Running action: ' . get_class($this) . '::run()', __METHOD__); if (Yii::$app->requestedParams === null) { Yii::$app->requestedParams = $args; } if ($this->beforeRun()) { $result = call_user_func_array([$this, 'run'], $args); $this->afterRun(); return $result; } else { return null; }
} $result = null; if ($runAction && $this->beforeAction($action)) { // run the action $result = $action->runWithParams($params); $result = $this->afterAction($action, $result); // call afterAction on modules foreach ($modules as $module) { /* @var $module Module */
$parts = $this->createController($route); if (is_array($parts)) { /* @var $controller Controller */ list($controller, $actionID) = $parts; $oldController = Yii::$app->controller; Yii::$app->controller = $controller; $result = $controller->runAction($actionID, $params); Yii::$app->controller = $oldController; return $result; } else { $id = $this->getUniqueId(); throw new InvalidRouteException('Unable to resolve the request "' . ($id === '' ? $route : $id . '/' . $route) . '".');
$params = $this->catchAll; unset($params[0]); } try { Yii::trace("Route requested: '$route'", __METHOD__); $this->requestedRoute = $route; $result = $this->runAction($route, $params); if ($result instanceof Response) { return $result; } else { $response = $this->getResponse(); if ($result !== null) { $response->data = $result;
try { $this->state = self::STATE_BEFORE_REQUEST; $this->trigger(self::EVENT_BEFORE_REQUEST); $this->state = self::STATE_HANDLING_REQUEST; $response = $this->handleRequest($this->getRequest()); $this->state = self::STATE_AFTER_REQUEST; $this->trigger(self::EVENT_AFTER_REQUEST); $this->state = self::STATE_SENDING_RESPONSE; $response->send();
require(__DIR__ . '/common/config/main-local.php'), require(__DIR__ . '/frontend/config/main.php'), require(__DIR__ . '/frontend/config/main-local.php') ); $application = new yii\web\Application($config); $application->run();
$_GET = [ 'authclient' => 'twitter', ]; $_SERVER = [ 'USER' => 'www-data', 'HOME' => '/var/www', 'HTTP_HOST' => 'gr.distancebetween5.com', 'HTTP_USER_AGENT' => 'claudebot', 'HTTP_ACCEPT' => '*/*', 'REDIRECT_STATUS' => '200', 'SERVER_NAME' => 'distance.su', 'SERVER_PORT' => '80', 'SERVER_ADDR' => '86.110.220.249', 'REMOTE_USER' => '', 'REMOTE_PORT' => '48944', 'REMOTE_ADDR' => '23.20.220.59', 'SERVER_SOFTWARE' => 'nginx/1.18.0', 'GATEWAY_INTERFACE' => 'CGI/1.1', 'REQUEST_SCHEME' => 'http', 'SERVER_PROTOCOL' => 'HTTP/1.1', 'DOCUMENT_ROOT' => '/home/annenkov/www/distance/distance', 'DOCUMENT_URI' => '/index.php', 'REQUEST_URI' => '/auth/?authclient=twitter', 'SCRIPT_NAME' => '/index.php', 'CONTENT_LENGTH' => '', 'CONTENT_TYPE' => '', 'REQUEST_METHOD' => 'GET', 'QUERY_STRING' => 'authclient=twitter', 'SCRIPT_FILENAME' => '/home/annenkov/www/distance/distance/index.php', 'FCGI_ROLE' => 'RESPONDER', 'PHP_SELF' => '/index.php', 'REQUEST_TIME_FLOAT' => 1710845670.155328, 'REQUEST_TIME' => 1710845670, ]; $_SESSION = [ '__flash' => [], ];