<?php
declare(strict_types=1);
namespace Trikoder\Bundle\OAuth2Bundle\Controller;
use League\OAuth2\Server\AuthorizationServer;
use League\OAuth2\Server\Exception\OAuthServerException;
use Psr\Http\Message\ResponseFactoryInterface;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
final class TokenController
{
/**
* @var AuthorizationServer
*/
private $server;
public function __construct(AuthorizationServer $server)
{
$this->server = $server;
}
public function indexAction(
ServerRequestInterface $serverRequest,
ResponseFactoryInterface $responseFactory
): ResponseInterface {
$serverResponse = $responseFactory->createResponse();
try {
return $this->server->respondToAccessTokenRequest($serverRequest, $serverResponse);
} catch (OAuthServerException $e) {
return $e->generateHttpResponse($serverResponse);
}
}
}