src/Security/EventSubscriber/DeauthenticatedSubscriber.php line 13

Open in your IDE?
  1. <?php
  2. namespace App\Security\EventSubscriber;
  3. use App\Entity\Utilisateur\Utilisateur;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Symfony\Component\HttpFoundation\RequestStack;
  6. use Symfony\Component\Security\Http\Event\TokenDeauthenticatedEvent;
  7. class DeauthenticatedSubscriber implements EventSubscriberInterface
  8. {
  9.     public function onDeauthenticatedEvent(TokenDeauthenticatedEvent $event): void
  10.     {
  11.         /** @var Utilisateur $user */
  12.         $user $event->getOriginalToken()->getUser();
  13.         if ($user->getSessionId() !== $event->getRequest()->getSession()->getId()) {
  14.             $event->getRequest()->getSession()->getFlashBag()->add('warning''Vous avez été deconnecté car vous vous êtes connecté sur un autre poste.');
  15.         }
  16.     }
  17.     public static function getSubscribedEvents(): array
  18.     {
  19.         return [
  20.             TokenDeauthenticatedEvent::class => 'onDeauthenticatedEvent',
  21.         ];
  22.     }
  23. }