<?php
namespace App\EventSubscriber;
use Symfony\Component\Security\Core\Security;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use League\Bundle\OAuth2ServerBundle\Event\AuthorizationRequestResolveEvent;
class AuthorizationCodeSubscriber implements EventSubscriberInterface
{
/**
* Used by OAuth2 server to validate user consent to share data.
* Could redirect to a consent page but consent by default as it only share ordinal ID
*
* Only accept connection for user with ordinal ID
*
* example of a consent page : https://davegebler.com/post/coding/build-oauth2-server-php-symfony
*
* @param AuthorizationRequestResolveEvent $event
* @return void
*/
public function onLeagueOauth2ServerEventAuthorizationRequestResolve(AuthorizationRequestResolveEvent $event): void
{
$user = $event->getUser();
$event->resolveAuthorization($user->getOrdinalId() !== '');
}
public static function getSubscribedEvents(): array
{
return [
'league.oauth2_server.event.authorization_request_resolve' => 'onLeagueOauth2ServerEventAuthorizationRequestResolve',
];
}
}