<?phpnamespace App\EventListener;use App\Entity\Core\Users;use Symfony\Component\HttpFoundation\RequestStack;use Lexik\Bundle\JWTAuthenticationBundle\Event\AuthenticationSuccessEvent;use Symfony\Component\Security\Core\User\UserInterface;use Lexik\Bundle\JWTAuthenticationBundle\Event\JWTCreatedEvent;class JWTCreatedListener{ /** * @var RequestStack */ private $requestStack; /** * @param RequestStack $requestStack */ public function __construct(RequestStack $requestStack) { $this->requestStack = $requestStack; } /** * @param AuthenticationSuccessEvent $event */ public function onAuthenticationSuccessResponse(AuthenticationSuccessEvent $event) { $data = $event->getData(); $user = $event->getUser(); if (!$user instanceof UserInterface) { return; } if ($user instanceof Users) { $language = "en"; if($user->getLanguage() !== null){ $language = $user->getLanguage(); } $avatar64 = ""; if($user->getImage() !== null && $user->getImage()->getName() !== null){ $avatar64 = $user->getImageBase64(); } $data['data'] = array( 'id' => $user->getId(), 'email' => $user->getEmail(), 'roles' => $user->getRoles(), 'typeAccount' => $user->getTypeAccount(), 'name' => $user->getName(), 'lastname' => $user->getLastname(), 'language' => $language, 'avatar' => $avatar64, 'first' => $user->isFirst(), 'enabled' => $user->isEnabled(), 'verification' => $user->isVerification(), 'motifverification' => $user->getMotif() ); } $event->setData($data); } public function onJWTCreated(JWTCreatedEvent $event) { $user = $event->getUser(); $payload = $event->getData(); $payload['userId'] = $user->getId(); $payload['username'] = $user->getUsername(); $payload['email'] = $user->getEmail(); $payload['typeAccount'] = $user->getTypeAccount(); $payload['verification'] = $user->isVerification(); $payload['first'] = $user->isFirst(); $payload['enabled'] = $user->isEnabled(); $payload['language'] = $user->getLanguage(); $event->setData($payload); }}