<?php
namespace FlexApp\EventSubscriber;
use Doctrine\ORM\EntityManagerInterface;
use FlexApp\Service\CurrentUserProvider;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\Cookie;
use Symfony\Component\Security\Http\Event\LogoutEvent;
class LogoutSubscriber implements EventSubscriberInterface
{
/** @required */
public CurrentUserProvider $currentUserProvider;
/** @required */
public EntityManagerInterface $entityManager;
public function onLogoutEvent(LogoutEvent $event)
{
$response = $event->getResponse();
$token = hash('sha256', uniqid());
$cookie = new Cookie('token', $token, time() + 94608000, '/');
$_SESSION['token'] = $token;
$response->headers->setCookie($cookie);
}
public static function getSubscribedEvents()
{
return [
LogoutEvent::class => 'onLogoutEvent',
];
}
}