src/EventListener/JWTCreatedListener.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use App\Repository\UserRepository;
  4. use Lexik\Bundle\JWTAuthenticationBundle\Event\JWTCreatedEvent;
  5. class JWTCreatedListener
  6. {
  7.     private UserRepository $userRepository;
  8.     public function __construct(UserRepository $userRepository)
  9.     {
  10.         $this->userRepository $userRepository;
  11.     }
  12.     public function onJWTCreated(JWTCreatedEvent $event)
  13.     {
  14.         $user $this->userRepository->findOneBy(['email' => $event->getData()['username']]);
  15.         $payload $event->getData();
  16.         $date = new \DateTime();
  17.         // date to timestamp
  18.         $timestamp $date->getTimestamp();
  19.         $payload['isActive'] = $user->getIsActive();
  20.         $payload['name'] = $user->getName();
  21.         $payload['surnames'] = $user->getSurnames();
  22.         $payload['id'] = $user->getId();
  23.         $payload['isSmsExpiration'] = $timestamp >= $user->getSmsExpirationDate() ? true false;
  24.         if (!$user->getIsActive()) {
  25.             $payload = [];
  26.         }
  27.         $event->setData($payload);
  28.     }
  29. }