Joomla Platform  13.1
Documentation des API du framework Joomla Platform
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Pages
Référence de la classe JOAuth2Client
+ Graphe d'héritage de JOAuth2Client:

Liste de tous les membres

Fonctions membres publiques

 __construct (JRegistry $options=null, JHttp $http=null, JInput $input=null, JApplicationWeb $application=null)
 authenticate ()
 isAuthenticated ()
 createUrl ()
 query ($url, $data=null, $headers=array(), $method= 'get', $timeout=null)
 getOption ($key)
 setOption ($key, $value)
 getToken ()
 setToken ($value)
 refreshToken ($token=null)

Attributs protégés

 $options
 $http
 $input
 $application

Description détaillée

Définition à la ligne 19 du fichier client.php.


Documentation des constructeurs et destructeur

JOAuth2Client::__construct ( JRegistry  $options = null,
JHttp  $http = null,
JInput  $input = null,
JApplicationWeb  $application = null 
)

Constructor.

Paramètres:
JRegistry$optionsJOAuth2Client options object
JHttp$httpThe HTTP client object
JInput$inputThe input object
JApplicationWeb$applicationThe application object
Depuis:
12.3

Définition à la ligne 55 du fichier client.php.

Références JFactory\getApplication().

{
$this->options = isset($options) ? $options : new JRegistry;
$this->http = isset($http) ? $http : new JHttp($this->options);
$this->input = isset($input) ? $input : JFactory::getApplication()->input;
$this->application = isset($application) ? $application : new JApplicationWeb;
}

+ Voici le graphe d'appel pour cette fonction :


Documentation des fonctions membres

JOAuth2Client::authenticate ( )

Get the access token or redict to the authentication URL.

Renvoie:
string The access token
Depuis:
12.3
Exceptions:
RuntimeException

Définition à la ligne 71 du fichier client.php.

{
if ($data['code'] = $this->input->get('code', false, 'raw'))
{
$data['grant_type'] = 'authorization_code';
$data['redirect_uri'] = $this->getOption('redirecturi');
$data['client_id'] = $this->getOption('clientid');
$data['client_secret'] = $this->getOption('clientsecret');
$response = $this->http->post($this->getOption('tokenurl'), $data);
if ($response->code >= 200 && $response->code < 400)
{
if ($response->headers['Content-Type'] == 'application/json')
{
$token = array_merge(json_decode($response->body, true), array('created' => time()));
}
else
{
parse_str($response->body, $token);
$token = array_merge($token, array('created' => time()));
}
$this->setToken($token);
return $token;
}
else
{
throw new RuntimeException('Error code ' . $response->code . ' received requesting access token: ' . $response->body . '.');
}
}
if ($this->getOption('sendheaders'))
{
$this->application->redirect($this->createUrl());
}
return false;
}
JOAuth2Client::createUrl ( )

Create the URL for authentication.

Renvoie:
JHttpResponse The HTTP response
Depuis:
12.3
Exceptions:
InvalidArgumentException

Définition à la ligne 144 du fichier client.php.

{
if (!$this->getOption('authurl') || !$this->getOption('clientid'))
{
throw new InvalidArgumentException('Authorization URL and client_id are required');
}
$url = $this->getOption('authurl');
if (strpos($url, '?'))
{
$url .= '&';
}
else
{
$url .= '?';
}
$url .= 'response_type=code';
$url .= '&client_id=' . urlencode($this->getOption('clientid'));
if ($this->getOption('redirecturi'))
{
$url .= '&redirect_uri=' . urlencode($this->getOption('redirecturi'));
}
if ($this->getOption('scope'))
{
$scope = is_array($this->getOption('scope')) ? implode(' ', $this->getOption('scope')) : $this->getOption('scope');
$url .= '&scope=' . urlencode($scope);
}
if ($this->getOption('state'))
{
$url .= '&state=' . urlencode($this->getOption('state'));
}
if (is_array($this->getOption('requestparams')))
{
foreach ($this->getOption('requestparams') as $key => $value)
{
$url .= '&' . $key . '=' . urlencode($value);
}
}
return $url;
}
JOAuth2Client::getOption (   $key)

Get an option from the JOAuth2Client instance.

Paramètres:
string$keyThe name of the option to get
Renvoie:
mixed The option value
Depuis:
12.3

Définition à la ligne 271 du fichier client.php.

{
return $this->options->get($key);
}
JOAuth2Client::getToken ( )

Get the access token from the JOAuth2Client instance.

Renvoie:
array The access token
Depuis:
12.3

Définition à la ligne 300 du fichier client.php.

{
return $this->getOption('accesstoken');
}
JOAuth2Client::isAuthenticated ( )

Verify if the client has been authenticated

Renvoie:
boolean Is authenticated
Depuis:
12.3

Définition à la ligne 118 du fichier client.php.

{
$token = $this->getToken();
if (!$token || !array_key_exists('access_token', $token))
{
return false;
}
elseif (array_key_exists('expires_in', $token) && $token['created'] + $token['expires_in'] < time() + 20)
{
return false;
}
else
{
return true;
}
}
JOAuth2Client::query (   $url,
  $data = null,
  $headers = array(),
  $method = 'get',
  $timeout = null 
)

Send a signed Oauth request.

Paramètres:
string$urlThe URL forf the request.
mixed$dataThe data to include in the request
array$headersThe headers to send with the request
string$methodThe method with which to send the request
int$timeoutThe timeout for the request
Renvoie:
string The URL.
Depuis:
12.3
Exceptions:
InvalidArgumentException
RuntimeException

Définition à la ligne 207 du fichier client.php.

{
$token = $this->getToken();
if (array_key_exists('expires_in', $token) && $token['created'] + $token['expires_in'] < time() + 20)
{
if (!$this->getOption('userefresh'))
{
return false;
}
$token = $this->refreshToken($token['refresh_token']);
}
if (!$this->getOption('authmethod') || $this->getOption('authmethod') == 'bearer')
{
$headers['Authorization'] = 'Bearer ' . $token['access_token'];
}
elseif ($this->getOption('authmethod') == 'get')
{
if (strpos($url, '?'))
{
$url .= '&';
}
else
{
$url .= '?';
}
$url .= $this->getOption('getparam') ? $this->getOption('getparam') : 'access_token';
$url .= '=' . $token['access_token'];
}
switch ($method)
{
case 'head':
case 'get':
case 'delete':
case 'trace':
$response = $this->http->$method($url, $headers, $timeout);
break;
case 'post':
case 'put':
case 'patch':
$response = $this->http->$method($url, $data, $headers, $timeout);
break;
default:
throw new InvalidArgumentException('Unknown HTTP request method: ' . $method . '.');
}
if ($response->code < 200 || $response->code >= 400)
{
throw new RuntimeException('Error code ' . $response->code . ' received requesting data: ' . $response->body . '.');
}
return $response;
}
JOAuth2Client::refreshToken (   $token = null)

Refresh the access token instance.

Paramètres:
string$tokenThe refresh token
Renvoie:
array The new access token
Depuis:
12.3
Exceptions:
Exception
RuntimeException

Définition à la ligne 337 du fichier client.php.

{
if (!$this->getOption('userefresh'))
{
throw new RuntimeException('Refresh token is not supported for this OAuth instance.');
}
if (!$token)
{
$token = $this->getToken();
if (!array_key_exists('refresh_token', $token))
{
throw new RuntimeException('No refresh token is available.');
}
$token = $token['refresh_token'];
}
$data['grant_type'] = 'refresh_token';
$data['refresh_token'] = $token;
$data['client_id'] = $this->getOption('clientid');
$data['client_secret'] = $this->getOption('clientsecret');
$response = $this->http->post($this->getOption('tokenurl'), $data);
if ($response->code >= 200 || $response->code < 400)
{
if ($response->headers['Content-Type'] == 'application/json')
{
$token = array_merge(json_decode($response->body, true), array('created' => time()));
}
else
{
parse_str($response->body, $token);
$token = array_merge($token, array('created' => time()));
}
$this->setToken($token);
return $token;
}
else
{
throw new Exception('Error code ' . $response->code . ' received refreshing token: ' . $response->body . '.');
}
}
JOAuth2Client::setOption (   $key,
  $value 
)

Set an option for the JOAuth2Client instance.

Paramètres:
string$keyThe name of the option to set
mixed$valueThe option value to set
Renvoie:
JOAuth2Client This object for method chaining
Depuis:
12.3

Définition à la ligne 286 du fichier client.php.

{
$this->options->set($key, $value);
return $this;
}
JOAuth2Client::setToken (   $value)

Set an option for the JOAuth2Client instance.

Paramètres:
array$valueThe access token
Renvoie:
JOAuth2Client This object for method chaining
Depuis:
12.3

Définition à la ligne 314 du fichier client.php.

{
if (is_array($value) && !array_key_exists('expires_in', $value) && array_key_exists('expires', $value))
{
$value['expires_in'] = $value['expires'];
unset($value['expires']);
}
$this->setOption('accesstoken', $value);
return $this;
}

Documentation des données membres

JOAuth2Client::$application
protected

Définition à la ligne 43 du fichier client.php.

JOAuth2Client::$http
protected

Définition à la ligne 31 du fichier client.php.

JOAuth2Client::$input
protected

Définition à la ligne 37 du fichier client.php.

JOAuth2Client::$options
protected

Réimplémentée dans JFacebookOAuth.

Définition à la ligne 25 du fichier client.php.


La documentation de cette classe a été générée à partir du fichier suivant :