src/EventListener/JWTCreatedListener.php line 29

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use App\Entity\Core\Users;
  4. use Symfony\Component\HttpFoundation\RequestStack;
  5. use Lexik\Bundle\JWTAuthenticationBundle\Event\AuthenticationSuccessEvent;
  6. use Symfony\Component\Security\Core\User\UserInterface;
  7. use Lexik\Bundle\JWTAuthenticationBundle\Event\JWTCreatedEvent;
  8. class JWTCreatedListener
  9. {
  10.     /**
  11.      * @var RequestStack
  12.      */
  13.     private $requestStack;
  14.     /**
  15.      * @param RequestStack $requestStack
  16.      */
  17.     public function __construct(RequestStack $requestStack)
  18.     {
  19.         $this->requestStack $requestStack;
  20.     }
  21.     /**
  22.      * @param AuthenticationSuccessEvent $event
  23.      */
  24.     public function onAuthenticationSuccessResponse(AuthenticationSuccessEvent $event)
  25.     {
  26.         $data $event->getData();
  27.         $user $event->getUser();
  28.         if (!$user instanceof UserInterface) {
  29.             return;
  30.         }
  31.         if ($user instanceof Users) {
  32.             $language "en";
  33.             if($user->getLanguage() !== null){
  34.                 $language $user->getLanguage();
  35.             }
  36.             $avatar64 "";
  37.             if($user->getImage() !== null && $user->getImage()->getName() !== null){
  38.                 $avatar64 $user->getImageBase64();
  39.             }
  40.             $data['data'] = array(
  41.                 'id'  => $user->getId(),
  42.                 'email' => $user->getEmail(),
  43.                 'roles' => $user->getRoles(),
  44.                 'typeAccount' => $user->getTypeAccount(),
  45.                 'name' => $user->getName(),
  46.                 'lastname' => $user->getLastname(),
  47.                 'language' => $language,
  48.                 'avatar' => $avatar64,
  49.                 'first' => $user->isFirst(),
  50.                 'enabled' => $user->isEnabled(),
  51.                 'verification' => $user->isVerification(),
  52.                 'motifverification' => $user->getMotif()
  53.             );
  54.         }
  55.         $event->setData($data);
  56.     }
  57.     public function onJWTCreated(JWTCreatedEvent $event)
  58.     {
  59.         $user $event->getUser();
  60.         $payload $event->getData();
  61.         $payload['userId'] = $user->getId();
  62.         $payload['username'] = $user->getUsername();
  63.         $payload['email'] = $user->getEmail();
  64.         $payload['typeAccount'] = $user->getTypeAccount();
  65.         $payload['verification'] = $user->isVerification();
  66.         $payload['first'] = $user->isFirst();
  67.         $payload['enabled'] = $user->isEnabled();
  68.         $payload['language'] = $user->getLanguage();
  69.         $event->setData($payload);
  70.     }
  71. }