new appraoch
This commit is contained in:
80
pancake/system/vendor/league/oauth2-client/src/Grant/AbstractGrant.php
vendored
Executable file
80
pancake/system/vendor/league/oauth2-client/src/Grant/AbstractGrant.php
vendored
Executable file
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of the league/oauth2-client library
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*
|
||||
* @copyright Copyright (c) Alex Bilbie <hello@alexbilbie.com>
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
* @link http://thephpleague.com/oauth2-client/ Documentation
|
||||
* @link https://packagist.org/packages/league/oauth2-client Packagist
|
||||
* @link https://github.com/thephpleague/oauth2-client GitHub
|
||||
*/
|
||||
|
||||
namespace League\OAuth2\Client\Grant;
|
||||
|
||||
use League\OAuth2\Client\Tool\RequiredParameterTrait;
|
||||
|
||||
/**
|
||||
* Represents a type of authorization grant.
|
||||
*
|
||||
* An authorization grant is a credential representing the resource
|
||||
* owner's authorization (to access its protected resources) used by the
|
||||
* client to obtain an access token. OAuth 2.0 defines four
|
||||
* grant types -- authorization code, implicit, resource owner password
|
||||
* credentials, and client credentials -- as well as an extensibility
|
||||
* mechanism for defining additional types.
|
||||
*
|
||||
* @link http://tools.ietf.org/html/rfc6749#section-1.3 Authorization Grant (RFC 6749, §1.3)
|
||||
*/
|
||||
abstract class AbstractGrant
|
||||
{
|
||||
use RequiredParameterTrait;
|
||||
|
||||
/**
|
||||
* Returns the name of this grant, eg. 'grant_name', which is used as the
|
||||
* grant type when encoding URL query parameters.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
abstract protected function getName();
|
||||
|
||||
/**
|
||||
* Returns a list of all required request parameters.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
abstract protected function getRequiredRequestParameters();
|
||||
|
||||
/**
|
||||
* Returns this grant's name as its string representation. This allows for
|
||||
* string interpolation when building URL query parameters.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function __toString()
|
||||
{
|
||||
return $this->getName();
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares an access token request's parameters by checking that all
|
||||
* required parameters are set, then merging with any given defaults.
|
||||
*
|
||||
* @param array $defaults
|
||||
* @param array $options
|
||||
* @return array
|
||||
*/
|
||||
public function prepareRequestParameters(array $defaults, array $options)
|
||||
{
|
||||
$defaults['grant_type'] = $this->getName();
|
||||
|
||||
$required = $this->getRequiredRequestParameters();
|
||||
$provided = array_merge($defaults, $options);
|
||||
|
||||
$this->checkRequiredParameters($required, $provided);
|
||||
|
||||
return $provided;
|
||||
}
|
||||
}
|
||||
41
pancake/system/vendor/league/oauth2-client/src/Grant/AuthorizationCode.php
vendored
Executable file
41
pancake/system/vendor/league/oauth2-client/src/Grant/AuthorizationCode.php
vendored
Executable file
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of the league/oauth2-client library
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*
|
||||
* @copyright Copyright (c) Alex Bilbie <hello@alexbilbie.com>
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
* @link http://thephpleague.com/oauth2-client/ Documentation
|
||||
* @link https://packagist.org/packages/league/oauth2-client Packagist
|
||||
* @link https://github.com/thephpleague/oauth2-client GitHub
|
||||
*/
|
||||
|
||||
namespace League\OAuth2\Client\Grant;
|
||||
|
||||
/**
|
||||
* Represents an authorization code grant.
|
||||
*
|
||||
* @link http://tools.ietf.org/html/rfc6749#section-1.3.1 Authorization Code (RFC 6749, §1.3.1)
|
||||
*/
|
||||
class AuthorizationCode extends AbstractGrant
|
||||
{
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
protected function getName()
|
||||
{
|
||||
return 'authorization_code';
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
protected function getRequiredRequestParameters()
|
||||
{
|
||||
return [
|
||||
'code',
|
||||
];
|
||||
}
|
||||
}
|
||||
39
pancake/system/vendor/league/oauth2-client/src/Grant/ClientCredentials.php
vendored
Executable file
39
pancake/system/vendor/league/oauth2-client/src/Grant/ClientCredentials.php
vendored
Executable file
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of the league/oauth2-client library
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*
|
||||
* @copyright Copyright (c) Alex Bilbie <hello@alexbilbie.com>
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
* @link http://thephpleague.com/oauth2-client/ Documentation
|
||||
* @link https://packagist.org/packages/league/oauth2-client Packagist
|
||||
* @link https://github.com/thephpleague/oauth2-client GitHub
|
||||
*/
|
||||
|
||||
namespace League\OAuth2\Client\Grant;
|
||||
|
||||
/**
|
||||
* Represents a client credentials grant.
|
||||
*
|
||||
* @link http://tools.ietf.org/html/rfc6749#section-1.3.4 Client Credentials (RFC 6749, §1.3.4)
|
||||
*/
|
||||
class ClientCredentials extends AbstractGrant
|
||||
{
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
protected function getName()
|
||||
{
|
||||
return 'client_credentials';
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
protected function getRequiredRequestParameters()
|
||||
{
|
||||
return [];
|
||||
}
|
||||
}
|
||||
26
pancake/system/vendor/league/oauth2-client/src/Grant/Exception/InvalidGrantException.php
vendored
Executable file
26
pancake/system/vendor/league/oauth2-client/src/Grant/Exception/InvalidGrantException.php
vendored
Executable file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of the league/oauth2-client library
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*
|
||||
* @copyright Copyright (c) Alex Bilbie <hello@alexbilbie.com>
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
* @link http://thephpleague.com/oauth2-client/ Documentation
|
||||
* @link https://packagist.org/packages/league/oauth2-client Packagist
|
||||
* @link https://github.com/thephpleague/oauth2-client GitHub
|
||||
*/
|
||||
|
||||
namespace League\OAuth2\Client\Grant\Exception;
|
||||
|
||||
use InvalidArgumentException;
|
||||
|
||||
/**
|
||||
* Exception thrown if the grant does not extend from AbstractGrant.
|
||||
*
|
||||
* @see League\OAuth2\Client\Grant\AbstractGrant
|
||||
*/
|
||||
class InvalidGrantException extends InvalidArgumentException
|
||||
{
|
||||
}
|
||||
104
pancake/system/vendor/league/oauth2-client/src/Grant/GrantFactory.php
vendored
Executable file
104
pancake/system/vendor/league/oauth2-client/src/Grant/GrantFactory.php
vendored
Executable file
@@ -0,0 +1,104 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of the league/oauth2-client library
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*
|
||||
* @copyright Copyright (c) Alex Bilbie <hello@alexbilbie.com>
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
* @link http://thephpleague.com/oauth2-client/ Documentation
|
||||
* @link https://packagist.org/packages/league/oauth2-client Packagist
|
||||
* @link https://github.com/thephpleague/oauth2-client GitHub
|
||||
*/
|
||||
|
||||
namespace League\OAuth2\Client\Grant;
|
||||
|
||||
use League\OAuth2\Client\Grant\Exception\InvalidGrantException;
|
||||
|
||||
/**
|
||||
* Represents a factory used when retrieving an authorization grant type.
|
||||
*/
|
||||
class GrantFactory
|
||||
{
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $registry = [];
|
||||
|
||||
/**
|
||||
* Defines a grant singleton in the registry.
|
||||
*
|
||||
* @param string $name
|
||||
* @param AbstractGrant $grant
|
||||
* @return self
|
||||
*/
|
||||
public function setGrant($name, AbstractGrant $grant)
|
||||
{
|
||||
$this->registry[$name] = $grant;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a grant singleton by name.
|
||||
*
|
||||
* If the grant has not be registered, a default grant will be loaded.
|
||||
*
|
||||
* @param string $name
|
||||
* @return AbstractGrant
|
||||
*/
|
||||
public function getGrant($name)
|
||||
{
|
||||
if (empty($this->registry[$name])) {
|
||||
$this->registerDefaultGrant($name);
|
||||
}
|
||||
|
||||
return $this->registry[$name];
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a default grant singleton by name.
|
||||
*
|
||||
* @param string $name
|
||||
* @return self
|
||||
*/
|
||||
protected function registerDefaultGrant($name)
|
||||
{
|
||||
// PascalCase the grant. E.g: 'authorization_code' becomes 'AuthorizationCode'
|
||||
$class = str_replace(' ', '', ucwords(str_replace(['-', '_'], ' ', $name)));
|
||||
$class = 'League\\OAuth2\\Client\\Grant\\' . $class;
|
||||
|
||||
$this->checkGrant($class);
|
||||
|
||||
return $this->setGrant($name, new $class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if a variable is a valid grant.
|
||||
*
|
||||
* @param mixed $class
|
||||
* @return boolean
|
||||
*/
|
||||
public function isGrant($class)
|
||||
{
|
||||
return is_subclass_of($class, AbstractGrant::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if a variable is a valid grant.
|
||||
*
|
||||
* @throws InvalidGrantException
|
||||
* @param mixed $class
|
||||
* @return void
|
||||
*/
|
||||
public function checkGrant($class)
|
||||
{
|
||||
if (!$this->isGrant($class)) {
|
||||
throw new InvalidGrantException(sprintf(
|
||||
'Grant "%s" must extend AbstractGrant',
|
||||
is_object($class) ? get_class($class) : $class
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
42
pancake/system/vendor/league/oauth2-client/src/Grant/Password.php
vendored
Executable file
42
pancake/system/vendor/league/oauth2-client/src/Grant/Password.php
vendored
Executable file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of the league/oauth2-client library
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*
|
||||
* @copyright Copyright (c) Alex Bilbie <hello@alexbilbie.com>
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
* @link http://thephpleague.com/oauth2-client/ Documentation
|
||||
* @link https://packagist.org/packages/league/oauth2-client Packagist
|
||||
* @link https://github.com/thephpleague/oauth2-client GitHub
|
||||
*/
|
||||
|
||||
namespace League\OAuth2\Client\Grant;
|
||||
|
||||
/**
|
||||
* Represents a resource owner password credentials grant.
|
||||
*
|
||||
* @link http://tools.ietf.org/html/rfc6749#section-1.3.3 Resource Owner Password Credentials (RFC 6749, §1.3.3)
|
||||
*/
|
||||
class Password extends AbstractGrant
|
||||
{
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
protected function getName()
|
||||
{
|
||||
return 'password';
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
protected function getRequiredRequestParameters()
|
||||
{
|
||||
return [
|
||||
'username',
|
||||
'password',
|
||||
];
|
||||
}
|
||||
}
|
||||
41
pancake/system/vendor/league/oauth2-client/src/Grant/RefreshToken.php
vendored
Executable file
41
pancake/system/vendor/league/oauth2-client/src/Grant/RefreshToken.php
vendored
Executable file
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of the league/oauth2-client library
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*
|
||||
* @copyright Copyright (c) Alex Bilbie <hello@alexbilbie.com>
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
* @link http://thephpleague.com/oauth2-client/ Documentation
|
||||
* @link https://packagist.org/packages/league/oauth2-client Packagist
|
||||
* @link https://github.com/thephpleague/oauth2-client GitHub
|
||||
*/
|
||||
|
||||
namespace League\OAuth2\Client\Grant;
|
||||
|
||||
/**
|
||||
* Represents a refresh token grant.
|
||||
*
|
||||
* @link http://tools.ietf.org/html/rfc6749#section-6 Refreshing an Access Token (RFC 6749, §6)
|
||||
*/
|
||||
class RefreshToken extends AbstractGrant
|
||||
{
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
protected function getName()
|
||||
{
|
||||
return 'refresh_token';
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
protected function getRequiredRequestParameters()
|
||||
{
|
||||
return [
|
||||
'refresh_token',
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user