src/EventSubscriber/JWTCreatedSubscriber.php line 18

  1. <?php
  2. namespace App\EventSubscriber;
  3. use Lexik\Bundle\JWTAuthenticationBundle\Event\JWTCreatedEvent;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. class JWTCreatedSubscriber implements EventSubscriberInterface
  6. {
  7.     public static function getSubscribedEvents(): array
  8.     {
  9.         return [
  10.             'lexik_jwt_authentication.on_jwt_created' => 'onJWTCreated',
  11.         ];
  12.     }
  13.     public function onJWTCreated(JWTCreatedEvent $event): void
  14.     {
  15.         $user $event->getUser();
  16.         // Get existing payload
  17.         $payload $event->getData();
  18.         // Add custom data (for example, user ID)
  19.         $payload['id'] = $user->getId();
  20.         $payload['email'] = $user->getEmail();
  21.         $payload['roles'] = $user->getRoles();
  22.         // Set updated payload
  23.         $event->setData($payload);
  24.     }
  25. }