src/EventListener/JWTCreatedListener.php line 29

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use App\Entity\Customer;
  4. use Symfony\Component\HttpFoundation\RequestStack;
  5. use Symfony\Component\Security\Core\User\UserInterface;
  6. use Lexik\Bundle\JWTAuthenticationBundle\Event\AuthenticationSuccessEvent;
  7. class JWTCreatedListener
  8. {
  9.     /**
  10.      * @var RequestStack
  11.      */
  12.     private $requestStack;
  13.     /**
  14.      * @param RequestStack $requestStack
  15.      */
  16.     public function __construct(RequestStack $requestStack)
  17.     {
  18.         $this->requestStack $requestStack;
  19.     }
  20.     /**
  21.      * @param AuthenticationSuccessEvent $event
  22.      * @throws \Exception
  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 Customer) {
  32.             $data['data'] = array(
  33.                 'id' => $user->getId(),
  34.                 'email' => $user->getEmail(),
  35.                 'firstname' => $user->getFirstname(),
  36.                 'lastname' => $user->getLastname(),
  37.                 'phone' => $user->getPhone(),
  38.                 'verify' => $user->getConfirmedEmail(),
  39.                 'isPro' => $user->getIsPro(),
  40.                 'stripeCustomerId' => ($user->getStripInfo()) ? $user->getStripInfo()->getStripeCustomerId() : "",
  41.             );
  42.         } else {
  43.             throw new \Exception('Something went wrong!');
  44.         }
  45.         $event->setData($data);
  46.     }
  47. }