src/Authentication/EventListener/JWTCreatedListener.php line 18

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace App\Authentication\EventListener;
  3. use App\Authentication\Entity\User;
  4. use Lexik\Bundle\JWTAuthenticationBundle\Event\JWTCreatedEvent;
  5. use Symfony\Component\HttpFoundation\RequestStack;
  6. class JWTCreatedListener
  7. {
  8.     private RequestStack $requestStack;
  9.     public function __construct(RequestStack $requestStack)
  10.     {
  11.         $this->requestStack $requestStack;
  12.     }
  13.     public function onJWTCreated(JWTCreatedEvent $event): void
  14.     {
  15.         /** @var User $user */
  16.         $user $event->getUser();
  17.         $request $this->requestStack->getCurrentRequest();
  18.         $payload $event->getData();
  19.         $payload['isVerified'] = $user->getIsVerified();
  20.         $payload['id'] = $user->getId();
  21.         $payload['name'] = $user->getName();
  22.         $payload['email'] = $user->getEmail();
  23.         $payload['username'] = $user->getUserIdentifier();
  24.         $event->setData($payload);
  25.         $header $event->getHeader();
  26.         $header['cty'] = 'JWT';
  27.         $event->setHeader($header);
  28.     }
  29. }