src/EventListener/AuthenticationSuccessListener.php line 31

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use App\Service\UserConnectionService;
  4. use Lexik\Bundle\JWTAuthenticationBundle\Event\AuthenticationSuccessEvent;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\RequestStack;
  7. use Symfony\Component\Security\Core\User\UserInterface;
  8. class AuthenticationSuccessListener
  9. {
  10.     private UserConnectionService $userConnectionService;
  11.     private Request $request;
  12.     public function __construct(
  13.         UserConnectionService $userConnectionService,
  14.         RequestStack $requestStack
  15.     ) {
  16.         $this->userConnectionService $userConnectionService;
  17.         $this->request $requestStack->getCurrentRequest();
  18.     }
  19.     /**
  20.      * Triggers when the authentication is successful.
  21.      *
  22.      * @param AuthenticationSuccessEvent $event The 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.         $this->userConnectionService->createForUser($user$this->request->getClientIp());
  32.         $event->setData($data);
  33.     }
  34. }