Browse Source

OAuth classes refactored.

tags/2.0.0-beta
Paul Klimov 11 years ago
parent
commit
d6f35f07ae
  1. 12
      extensions/yii/authclient/BaseOAuth.php
  2. 10
      extensions/yii/authclient/OAuth1.php
  3. 6
      extensions/yii/authclient/OAuth2.php
  4. 32
      extensions/yii/authclient/clients/GoogleOAuth.php
  5. 39
      extensions/yii/authclient/clients/Twitter.php

12
extensions/yii/authclient/BaseOAuth.php

@ -36,19 +36,19 @@ abstract class BaseOAuth extends BaseClient implements ClientInterface
* Note: this should be absolute URL (with http:// or https:// leading). * Note: this should be absolute URL (with http:// or https:// leading).
* By default current URL will be used. * By default current URL will be used.
*/ */
private $_returnUrl = ''; private $_returnUrl;
/** /**
* @var string API base URL. * @var string API base URL.
*/ */
public $apiBaseUrl = ''; public $apiBaseUrl;
/** /**
* @var string authorize URL. * @var string authorize URL.
*/ */
public $authUrl = ''; public $authUrl;
/** /**
* @var string auth request scope. * @var string auth request scope.
*/ */
public $scope = ''; public $scope;
/** /**
* @var array cURL request options. Option values from this field will overwrite corresponding * @var array cURL request options. Option values from this field will overwrite corresponding
* values from {@link defaultCurlOptions()}. * values from {@link defaultCurlOptions()}.
@ -57,7 +57,7 @@ abstract class BaseOAuth extends BaseClient implements ClientInterface
/** /**
* @var OAuthToken|array access token instance or its array configuration. * @var OAuthToken|array access token instance or its array configuration.
*/ */
private $_accessToken = null; private $_accessToken;
/** /**
* @var signature\BaseMethod|array signature method instance or its array configuration. * @var signature\BaseMethod|array signature method instance or its array configuration.
*/ */
@ -76,7 +76,7 @@ abstract class BaseOAuth extends BaseClient implements ClientInterface
*/ */
public function getReturnUrl() public function getReturnUrl()
{ {
if (empty($this->_returnUrl)) { if ($this->_returnUrl === null) {
$this->_returnUrl = $this->defaultReturnUrl(); $this->_returnUrl = $this->defaultReturnUrl();
} }
return $this->_returnUrl; return $this->_returnUrl;

10
extensions/yii/authclient/OAuth1.php

@ -40,15 +40,15 @@ class OAuth1 extends BaseOAuth
/** /**
* @var string OAuth consumer key. * @var string OAuth consumer key.
*/ */
public $consumerKey = ''; public $consumerKey;
/** /**
* @var string OAuth consumer secret. * @var string OAuth consumer secret.
*/ */
public $consumerSecret = ''; public $consumerSecret;
/** /**
* @var string OAuth request token URL. * @var string OAuth request token URL.
*/ */
public $requestTokenUrl = ''; public $requestTokenUrl;
/** /**
* @var string request token HTTP method. * @var string request token HTTP method.
*/ */
@ -56,7 +56,7 @@ class OAuth1 extends BaseOAuth
/** /**
* @var string OAuth access token URL. * @var string OAuth access token URL.
*/ */
public $accessTokenUrl = ''; public $accessTokenUrl;
/** /**
* @var string access token HTTP method. * @var string access token HTTP method.
*/ */
@ -179,7 +179,7 @@ class OAuth1 extends BaseOAuth
$curlOptions[CURLOPT_POSTFIELDS] = $params; $curlOptions[CURLOPT_POSTFIELDS] = $params;
} }
$authorizationHeader = $this->composeAuthorizationHeader($params); $authorizationHeader = $this->composeAuthorizationHeader($params);
if (!empty($authorizationHeader)/* && $this->curlAuthHeader*/) { if (!empty($authorizationHeader)) {
$curlOptions[CURLOPT_HTTPHEADER] = ['Content-Type: application/atom+xml', $authorizationHeader]; $curlOptions[CURLOPT_HTTPHEADER] = ['Content-Type: application/atom+xml', $authorizationHeader];
} }
break; break;

6
extensions/yii/authclient/OAuth2.php

@ -40,15 +40,15 @@ class OAuth2 extends BaseOAuth
/** /**
* @var string OAuth client ID. * @var string OAuth client ID.
*/ */
public $clientId = ''; public $clientId;
/** /**
* @var string OAuth client secret. * @var string OAuth client secret.
*/ */
public $clientSecret = ''; public $clientSecret;
/** /**
* @var string token request URL endpoint. * @var string token request URL endpoint.
*/ */
public $tokenUrl = ''; public $tokenUrl;
/** /**
* Composes user authorization URL. * Composes user authorization URL.

32
extensions/yii/authclient/clients/GoogleOAuth.php

@ -24,23 +24,27 @@ class GoogleOAuth extends OAuth2
/** /**
* @inheritdoc * @inheritdoc
*/ */
public function __construct($config = []) public $authUrl = 'https://accounts.google.com/o/oauth2/auth';
/**
* @inheritdoc
*/
public $tokenUrl = 'https://accounts.google.com/o/oauth2/token';
/**
* @inheritdoc
*/
public $apiBaseUrl = 'https://www.googleapis.com/oauth2/v1';
/**
* @inheritdoc
*/
public function init()
{ {
$config = array_merge( if ($this->scope === null) {
[ $this->scope = implode(' ', [
'clientId' => 'anonymous',
'clientSecret' => 'anonymous',
'authUrl' => 'https://accounts.google.com/o/oauth2/auth',
'tokenUrl' => 'https://accounts.google.com/o/oauth2/token',
'apiBaseUrl' => 'https://www.googleapis.com/oauth2/v1',
'scope' => implode(' ', [
'https://www.googleapis.com/auth/userinfo.profile', 'https://www.googleapis.com/auth/userinfo.profile',
'https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/userinfo.email',
]), ]);
], }
$config
);
parent::__construct($config);
} }
/** /**

39
extensions/yii/authclient/clients/Twitter.php

@ -24,24 +24,27 @@ class Twitter extends OAuth1
/** /**
* @inheritdoc * @inheritdoc
*/ */
public function __construct($config = []) public $authUrl = 'https://api.twitter.com/oauth/authorize';
{ /**
$config = array_merge( * @inheritdoc
[ */
'consumerKey' => 'anonymous', public $requestTokenUrl = 'https://api.twitter.com/oauth/request_token';
'consumerSecret' => 'anonymous', /**
'requestTokenUrl' => 'https://api.twitter.com/oauth/request_token', * @inheritdoc
'requestTokenMethod' => 'POST', */
'accessTokenUrl' => 'https://api.twitter.com/oauth/access_token', public $requestTokenMethod = 'POST';
'accessTokenMethod' => 'POST', /**
'authUrl' => 'https://api.twitter.com/oauth/authorize', * @inheritdoc
'scope' => '', */
'apiBaseUrl' => 'https://api.twitter.com/1.1', public $accessTokenUrl = 'https://api.twitter.com/oauth/access_token';
], /**
$config * @inheritdoc
); */
parent::__construct($config); public $accessTokenMethod = 'POST';
} /**
* @inheritdoc
*/
public $apiBaseUrl = 'https://api.twitter.com/1.1';
/** /**
* @inheritdoc * @inheritdoc

Loading…
Cancel
Save