src/EventListener/JWTCreatedListener.php line 33

  1. <?php
  2. namespace App\EventListener;
  3. use Lexik\Bundle\JWTAuthenticationBundle\Event\JWTCreatedEvent;
  4. use Symfony\Component\HttpFoundation\RequestStack;
  5. /**
  6.  * Listener permettant d'ajouter des informations aux payload des token JWT
  7.  */
  8. class JWTCreatedListener
  9. {
  10.     /**
  11.      * @var RequestStack
  12.      */
  13.     private $requestStack;
  14.     /**
  15.      * @param RequestStack $requestStack
  16.      */
  17.     public function __construct(RequestStack $requestStack)
  18.     {
  19.         $this->requestStack $requestStack;
  20.     }
  21.     /**
  22.      * @param JWTCreatedEvent $event
  23.      *
  24.      * @return void
  25.      */
  26.     public function onJWTCreated(JWTCreatedEvent $event)
  27.     {
  28.         $user $event->getUser();
  29.         $payload       $event->getData();
  30.         // On ajoute le User Id
  31.         $payload['id'] = $user->getId();
  32.         $event->setData($payload);
  33.         $header        $event->getHeader();
  34.         $header['cty'] = 'JWT';
  35.         $event->setHeader($header);
  36.     }
  37. }