<?php
// src/EventSubscriber/JWTCreatedSubscriber.php
namespace App\EventSubscriber;
use Lexik\Bundle\JWTAuthenticationBundle\Event\JWTCreatedEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Security\Core\User\UserInterface;
class JWTCreatedSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return [
'lexik_jwt_authentication.on_jwt_created' => 'onJWTCreated',
];
}
public function onJWTCreated(JWTCreatedEvent $event): void
{
$user = $event->getUser();
if (!$user instanceof UserInterface) {
return;
}
$payload = $event->getData();
// Ajout des informations personnalisées
$payload['id'] = $user->getUniqueProfile()->getId();
$payload['firstname'] = $user->getFirstname();
$payload['lastname'] = $user->getLastname();
$payload['photo'] = $user->getPhoto(); // Assure-toi que ça retourne bien une URL ou un chemin
$event->setData($payload);
}
}