<?php
namespace App\Security\EventSubscriber;
use App\Entity\Utilisateur\Utilisateur;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\Security\Http\Event\TokenDeauthenticatedEvent;
class DeauthenticatedSubscriber implements EventSubscriberInterface
{
public function onDeauthenticatedEvent(TokenDeauthenticatedEvent $event): void
{
/** @var Utilisateur $user */
$user = $event->getOriginalToken()->getUser();
if ($user->getSessionId() !== $event->getRequest()->getSession()->getId()) {
$event->getRequest()->getSession()->getFlashBag()->add('warning', 'Vous avez été deconnecté car vous vous êtes connecté sur un autre poste.');
}
}
public static function getSubscribedEvents(): array
{
return [
TokenDeauthenticatedEvent::class => 'onDeauthenticatedEvent',
];
}
}