src/EventSubscriber/Security/AuthenticationSuccessListener.php line 18

  1. <?php
  2. namespace App\EventSubscriber\Security;
  3. use App\Security\AuthUserSerializer;
  4. use Lexik\Bundle\JWTAuthenticationBundle\Event\AuthenticationSuccessEvent;
  5. use Symfony\Component\Security\Core\User\UserInterface;
  6. final readonly class AuthenticationSuccessListener
  7. {
  8.     public function __construct(
  9.         private AuthUserSerializer $authUserSerializer,
  10.     ) {}
  11.     /**
  12.      * @param AuthenticationSuccessEvent $event
  13.      */
  14.     public function onAuthenticationSuccessResponse(AuthenticationSuccessEvent $event): void
  15.     {
  16.         $data $event->getData();
  17.         $user $event->getUser();
  18.         if (!$user instanceof UserInterface) {
  19.             return;
  20.         }
  21.         $data['user'] = $this->authUserSerializer->serialize($user);
  22.         $event->setData($data);
  23.     }
  24. }