mirror of
https://github.com/elyby/oauth2-server.git
synced 2024-12-26 06:59:49 +05:30
Merge branch 'V5-WIP' of github.com:thephpleague/oauth2-server into V5-WIP
This commit is contained in:
commit
a40374e6ec
@ -36,7 +36,7 @@ The following versions of PHP are supported:
|
||||
|
||||
## Documentation
|
||||
|
||||
The library documentation can be found at [http://oauth2.thephpleague.com)(http://oauth2.thephpleague.com).
|
||||
The library documentation can be found at [http://oauth2.thephpleague.com](http://oauth2.thephpleague.com).
|
||||
You can contribute to this documentation in the [gh-pages branch](https://github.com/thephpleague/oauth2-server/tree/gh-pages/).
|
||||
|
||||
## Changelog
|
||||
|
@ -2,7 +2,6 @@
|
||||
|
||||
namespace League\OAuth2\Server;
|
||||
|
||||
use DateInterval;
|
||||
use League\Event\EmitterAwareInterface;
|
||||
use League\Event\EmitterAwareTrait;
|
||||
use League\OAuth2\Server\Exception\OAuthServerException;
|
||||
@ -33,6 +32,11 @@ class Server implements EmitterAwareInterface
|
||||
*/
|
||||
protected $grantTypeAccessTokenTTL = [];
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $defaultPrivateKeyPath;
|
||||
|
||||
/**
|
||||
* @var ResponseTypeInterface
|
||||
*/
|
||||
@ -51,12 +55,13 @@ class Server implements EmitterAwareInterface
|
||||
/**
|
||||
* New server instance
|
||||
*
|
||||
* @param string $pathToPrivateKey
|
||||
* @param string $defaultPrivateKeyPath
|
||||
* @param DateInterval $defaultAccessTokenTTL
|
||||
*/
|
||||
public function __construct($pathToPrivateKey)
|
||||
public function __construct($defaultPrivateKeyPath, \DateInterval $defaultAccessTokenTTL = null)
|
||||
{
|
||||
$this->setDefaultResponseType(new BearerTokenResponse($pathToPrivateKey));
|
||||
$this->setDefaultAccessTokenTTL(new DateInterval('PT01H')); // default token TTL of 1 hour
|
||||
$this->defaultPrivateKeyPath = $defaultPrivateKeyPath;
|
||||
$this->defaultAccessTokenTTL = $defaultAccessTokenTTL;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -69,6 +74,44 @@ class Server implements EmitterAwareInterface
|
||||
$this->defaultResponseType = $defaultTokenType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the default token type that grants will return
|
||||
*
|
||||
* @return ResponseTypeInterface
|
||||
*/
|
||||
protected function getDefaultResponseType()
|
||||
{
|
||||
if (!$this->defaultResponseType instanceof ResponseTypeInterface) {
|
||||
$this->defaultResponseType = new BearerTokenResponse($this->defaultPrivateKeyPath);
|
||||
}
|
||||
|
||||
return $this->defaultResponseType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the default TTL of access tokens
|
||||
*
|
||||
* @param DateInterval $defaultAccessTokenTTL
|
||||
*/
|
||||
public function setDefaultAccessTokenTTL(\DateInterval $defaultAccessTokenTTL)
|
||||
{
|
||||
$this->defaultAccessTokenTTL = $defaultAccessTokenTTL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the default TTL of access tokens
|
||||
*
|
||||
* @return DateInterval
|
||||
*/
|
||||
protected function getDefaultAccessTokenTTL()
|
||||
{
|
||||
if (!$this->defaultAccessTokenTTL instanceof \DateInterval) {
|
||||
$this->defaultAccessTokenTTL = new \DateInterval('PT01H'); // default token TTL of 1 hour
|
||||
}
|
||||
|
||||
return $this->defaultAccessTokenTTL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the delimiter string used to separate scopes in a request
|
||||
*
|
||||
@ -80,13 +123,13 @@ class Server implements EmitterAwareInterface
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the default TTL of access tokens
|
||||
* Get the delimiter string used to separate scopes in a request
|
||||
*
|
||||
* @param DateInterval $defaultAccessTokenTTL
|
||||
* @return string
|
||||
*/
|
||||
public function setDefaultAccessTokenTTL(DateInterval $defaultAccessTokenTTL)
|
||||
protected function getScopeDelimiterString()
|
||||
{
|
||||
$this->defaultAccessTokenTTL = $defaultAccessTokenTTL;
|
||||
return $this->scopeDelimiterString;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -99,7 +142,7 @@ class Server implements EmitterAwareInterface
|
||||
public function enableGrantType(
|
||||
GrantTypeInterface $grantType,
|
||||
ResponseTypeInterface $responseType = null,
|
||||
DateInterval $accessTokenTTL = null
|
||||
\DateInterval $accessTokenTTL = null
|
||||
) {
|
||||
$grantType->setEmitter($this->getEmitter());
|
||||
$this->enabledGrantTypes[$grantType->getIdentifier()] = $grantType;
|
||||
@ -108,14 +151,14 @@ class Server implements EmitterAwareInterface
|
||||
if ($responseType instanceof ResponseTypeInterface) {
|
||||
$this->grantResponseTypes[$grantType->getIdentifier()] = $responseType;
|
||||
} else {
|
||||
$this->grantResponseTypes[$grantType->getIdentifier()] = $this->defaultResponseType;
|
||||
$this->grantResponseTypes[$grantType->getIdentifier()] = $this->getDefaultResponseType();
|
||||
}
|
||||
|
||||
// Set grant access token TTL
|
||||
if ($accessTokenTTL instanceof DateInterval) {
|
||||
if ($accessTokenTTL instanceof \DateInterval) {
|
||||
$this->grantTypeAccessTokenTTL[$grantType->getIdentifier()] = $accessTokenTTL;
|
||||
} else {
|
||||
$this->grantTypeAccessTokenTTL[$grantType->getIdentifier()] = $this->defaultAccessTokenTTL;
|
||||
$this->grantTypeAccessTokenTTL[$grantType->getIdentifier()] = $this->getDefaultAccessTokenTTL();
|
||||
}
|
||||
}
|
||||
|
||||
@ -145,7 +188,7 @@ class Server implements EmitterAwareInterface
|
||||
$request,
|
||||
$this->grantResponseTypes[$grantType->getIdentifier()],
|
||||
$this->grantTypeAccessTokenTTL[$grantType->getIdentifier()],
|
||||
$this->scopeDelimiterString
|
||||
$this->getScopeDelimiterString()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user