<?php
/**
* Created by Logics Tecnologia e Serviços LTDA.
* @author: Romeu Godoi <romeu@logics.com.br>
* Date: 18/05/20
* Time: 13:35
* @copyright Copyright (C) 2020 LogicSITE. Todos os Direitos Reservados.
* LogicSITE. Este software é de propriedade exclusiva da LOGICS TEC. E SERV. LTDA
* e seu uso só pode ser dado por usuários licenciados por escrito.
* O uso indevido desta plataforma, ou parte dela estará sujeita a penalidades
* previstas em lei, conforme legislação pertinente.
*/
namespace App\EventListener;
use Lexik\Bundle\JWTAuthenticationBundle\Event\AuthenticationSuccessEvent;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Serializer\SerializerInterface;
/**
* Class JWTAuthenticationSuccessListener
* @package App\EventListener
*/
class JWTAuthenticationSuccessListener
{
public function __construct(private readonly SerializerInterface $serializer) {}
/**
* @param AuthenticationSuccessEvent $event
*/
public function onAuthenticationSuccessResponse(AuthenticationSuccessEvent $event)
{
$data = $event->getData();
$user = $event->getUser();
if (!$user instanceof UserInterface) {
return;
}
$userData = $this->serializer->serialize($user, 'json', ['groups' => ['user:read']]);
$data['data'] = json_decode($userData, true);
$event->setData($data);
}
}