SuiteCRM-Core/Api/V8/Controller/LogoutController.php
Dillon-Brown 8e4cc94994 Squashed 'public/legacy/' content from commit 817a12dc0
git-subtree-dir: public/legacy
git-subtree-split: 817a12dc0c30c189f56d5cb1f7dc37a9631bdbe3
2021-03-31 15:37:32 +01:00

51 lines
1.3 KiB
PHP

<?php
namespace Api\V8\Controller;
use Api\V8\Service\LogoutService;
use League\OAuth2\Server\ResourceServer;
use Slim\Http\Request;
use Slim\Http\Response;
class LogoutController extends BaseController
{
/**
* @var LogoutService
*/
protected $logoutService;
/**
* @var ResourceServer
*/
protected $resourceServer;
/**
* @param LogoutService $logoutService
* @param ResourceServer $resourceServer
*/
public function __construct(LogoutService $logoutService, ResourceServer $resourceServer)
{
$this->logoutService = $logoutService;
$this->resourceServer = $resourceServer;
}
/**
* @param Request $request
* @param Response $response
*
* @return Response
*/
public function __invoke(Request $request, Response $response)
{
try {
$accessToken = $this->resourceServer
->validateAuthenticatedRequest($request)
->getAttribute('oauth_access_token_id');
$logoutResponse = $this->logoutService->logout($accessToken);
return $this->generateResponse($response, $logoutResponse, 200);
} catch (\Exception $exception) {
return $this->generateErrorResponse($response, $exception, 400);
}
}
}