src/EventSubscriber/AuthorizationCodeSubscriber.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use Symfony\Component\Security\Core\Security;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use League\Bundle\OAuth2ServerBundle\Event\AuthorizationRequestResolveEvent;
  6. class AuthorizationCodeSubscriber implements EventSubscriberInterface
  7. {
  8.     /**
  9.      * Used by OAuth2 server to validate user consent to share data.
  10.      * Could redirect to a consent page but consent by default as it only share ordinal ID
  11.      *
  12.      * Only accept connection for user with ordinal ID
  13.      *
  14.      * example of a consent page : https://davegebler.com/post/coding/build-oauth2-server-php-symfony
  15.      *
  16.      * @param AuthorizationRequestResolveEvent $event
  17.      * @return void
  18.      */
  19.     public function onLeagueOauth2ServerEventAuthorizationRequestResolve(AuthorizationRequestResolveEvent $event): void
  20.     {
  21.         $user $event->getUser();
  22.         $event->resolveAuthorization($user->getOrdinalId() !== '');
  23.     }
  24.     public static function getSubscribedEvents(): array
  25.     {
  26.         return [
  27.             'league.oauth2_server.event.authorization_request_resolve' => 'onLeagueOauth2ServerEventAuthorizationRequestResolve',
  28.         ];
  29.     }
  30. }