mirror of
https://github.com/elyby/oauth2-server.git
synced 2024-12-22 21:19:46 +05:30
Generalized access token format
This commit is contained in:
parent
35c6f28aef
commit
fd72d79ad3
@ -22,4 +22,13 @@ interface AccessTokenEntityInterface extends TokenInterface
|
|||||||
* @return Token
|
* @return Token
|
||||||
*/
|
*/
|
||||||
public function convertToJWT(CryptKey $privateKey);
|
public function convertToJWT(CryptKey $privateKey);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate a string representation from the access token
|
||||||
|
*
|
||||||
|
* @param CryptKey $privateKey
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getResponseString(CryptKey $privateKey);
|
||||||
}
|
}
|
||||||
|
@ -40,6 +40,18 @@ trait AccessTokenTrait
|
|||||||
->getToken();
|
->getToken();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate a string representation from the access token
|
||||||
|
*
|
||||||
|
* @param CryptKey $privateKey
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getResponseString(CryptKey $privateKey)
|
||||||
|
{
|
||||||
|
return (string) $this->convertToJWT($privateKey);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return ClientEntityInterface
|
* @return ClientEntityInterface
|
||||||
*/
|
*/
|
||||||
|
@ -216,7 +216,7 @@ class ImplicitGrant extends AbstractAuthorizeGrant
|
|||||||
$this->makeRedirectUri(
|
$this->makeRedirectUri(
|
||||||
$finalRedirectUri,
|
$finalRedirectUri,
|
||||||
[
|
[
|
||||||
'access_token' => (string) $accessToken->convertToJWT($this->privateKey),
|
'access_token' => $accessToken->getResponseString($this->privateKey),
|
||||||
'token_type' => 'Bearer',
|
'token_type' => 'Bearer',
|
||||||
'expires_in' => $accessToken->getExpiryDateTime()->getTimestamp() - (new \DateTime())->getTimestamp(),
|
'expires_in' => $accessToken->getExpiryDateTime()->getTimestamp() - (new \DateTime())->getTimestamp(),
|
||||||
'state' => $authorizationRequest->getState(),
|
'state' => $authorizationRequest->getState(),
|
||||||
|
@ -24,12 +24,10 @@ class BearerTokenResponse extends AbstractResponseType
|
|||||||
{
|
{
|
||||||
$expireDateTime = $this->accessToken->getExpiryDateTime()->getTimestamp();
|
$expireDateTime = $this->accessToken->getExpiryDateTime()->getTimestamp();
|
||||||
|
|
||||||
$jwtAccessToken = $this->accessToken->convertToJWT($this->privateKey);
|
|
||||||
|
|
||||||
$responseParams = [
|
$responseParams = [
|
||||||
'token_type' => 'Bearer',
|
'token_type' => 'Bearer',
|
||||||
'expires_in' => $expireDateTime - (new \DateTime())->getTimestamp(),
|
'expires_in' => $expireDateTime - (new \DateTime())->getTimestamp(),
|
||||||
'access_token' => (string) $jwtAccessToken,
|
'access_token' => $this->accessToken->getResponseString($this->privateKey),
|
||||||
];
|
];
|
||||||
|
|
||||||
if ($this->refreshToken instanceof RefreshTokenEntityInterface) {
|
if ($this->refreshToken instanceof RefreshTokenEntityInterface) {
|
||||||
|
@ -30,7 +30,7 @@ class ResourceServerMiddlewareTest extends TestCase
|
|||||||
$accessToken->setExpiryDateTime((new \DateTime())->add(new \DateInterval('PT1H')));
|
$accessToken->setExpiryDateTime((new \DateTime())->add(new \DateInterval('PT1H')));
|
||||||
$accessToken->setClient($client);
|
$accessToken->setClient($client);
|
||||||
|
|
||||||
$token = $accessToken->convertToJWT(new CryptKey('file://' . __DIR__ . '/../Stubs/private.key'));
|
$token = $accessToken->getResponseString(new CryptKey('file://' . __DIR__ . '/../Stubs/private.key'));
|
||||||
|
|
||||||
$request = new ServerRequest();
|
$request = new ServerRequest();
|
||||||
$request = $request->withHeader('authorization', sprintf('Bearer %s', $token));
|
$request = $request->withHeader('authorization', sprintf('Bearer %s', $token));
|
||||||
@ -65,7 +65,7 @@ class ResourceServerMiddlewareTest extends TestCase
|
|||||||
$accessToken->setExpiryDateTime((new \DateTime())->sub(new \DateInterval('PT1H')));
|
$accessToken->setExpiryDateTime((new \DateTime())->sub(new \DateInterval('PT1H')));
|
||||||
$accessToken->setClient($client);
|
$accessToken->setClient($client);
|
||||||
|
|
||||||
$token = $accessToken->convertToJWT(new CryptKey('file://' . __DIR__ . '/../Stubs/private.key'));
|
$token = $accessToken->getResponseString(new CryptKey('file://' . __DIR__ . '/../Stubs/private.key'));
|
||||||
|
|
||||||
$request = new ServerRequest();
|
$request = new ServerRequest();
|
||||||
$request = $request->withHeader('authorization', sprintf('Bearer %s', $token));
|
$request = $request->withHeader('authorization', sprintf('Bearer %s', $token));
|
||||||
|
Loading…
Reference in New Issue
Block a user