<?php
namespace App\EventListener;
use App\Entity\AuthUser;
use Doctrine\ORM\EntityManagerInterface;
use Lexik\Bundle\JWTAuthenticationBundle\Event\JWTDecodedEvent;
class JWTDecodedListener
{
/** @var EntityManagerInterface $em */
private EntityManagerInterface $em;
public function __construct(
EntityManagerInterface $em
)
{
$this->em = $em;
}
/**
* @param JWTDecodedEvent $event
*/
public function onJWTDecoded(JWTDecodedEvent $event)
{
$payload = $event->getPayload();
/** @var AuthUser $user */
$user = $this->em->getRepository(AuthUser::class)->findOneBy(['email' => $payload['username']]);
true === $user->getIsBlocked() ? $event->markAsInvalid() : $event->stopPropagation();
}
}