src/EventListener/JWTDecodedListener.php line 24

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use App\Entity\AuthUser;
  4. use Doctrine\ORM\EntityManagerInterface;
  5. use Lexik\Bundle\JWTAuthenticationBundle\Event\JWTDecodedEvent;
  6. class JWTDecodedListener
  7. {
  8.     /** @var EntityManagerInterface $em */
  9.     private EntityManagerInterface $em;
  10.     public function __construct(
  11.         EntityManagerInterface $em
  12.     )
  13.     {
  14.         $this->em $em;
  15.     }
  16.     /**
  17.      * @param JWTDecodedEvent $event
  18.      */
  19.     public function onJWTDecoded(JWTDecodedEvent $event)
  20.     {
  21.         $payload $event->getPayload();
  22.         /** @var AuthUser $user */
  23.         $user $this->em->getRepository(AuthUser::class)->findOneBy(['email' => $payload['username']]);
  24.         true === $user->getIsBlocked() ? $event->markAsInvalid() : $event->stopPropagation();
  25.     }
  26. }