<?php
namespace App\Core\EventSubscriber\JWTAuthentication;
use App\Domain\User\Entity\User;
use Lexik\Bundle\JWTAuthenticationBundle\Event\AuthenticationSuccessEvent;
use Lexik\Bundle\JWTAuthenticationBundle\Events;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class JWTAuthenticationSuccessSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return [
Events::AUTHENTICATION_SUCCESS => 'onAuthenticationSuccess',
];
}
public function onAuthenticationSuccess(AuthenticationSuccessEvent $event): void
{
/** @var User $user */
$user = $event->getUser();
$event->setData([
'id' => $user->getId(),
'username' => $user->getFirstname() . " " . $user->getLastname(),
'token' => $event->getData()['token'],
'refreshToken' => $event->getData()['refreshToken']
]);
}
}