vendor/symfony/security-http/Logout/CookieClearingLogoutHandler.php line 23

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the Symfony package.
  4.  *
  5.  * (c) Fabien Potencier <fabien@symfony.com>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. namespace Symfony\Component\Security\Http\Logout;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\HttpFoundation\Response;
  13. use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
  14. /**
  15.  * This handler clears the passed cookies when a user logs out.
  16.  *
  17.  * @author Johannes M. Schmitt <schmittjoh@gmail.com>
  18.  */
  19. class CookieClearingLogoutHandler implements LogoutHandlerInterface
  20. {
  21.     private $cookies;
  22.     /**
  23.      * @param array $cookies An array of cookie names to unset
  24.      */
  25.     public function __construct(array $cookies)
  26.     {
  27.         $this->cookies $cookies;
  28.     }
  29.     /**
  30.      * Implementation for the LogoutHandlerInterface. Deletes all requested cookies.
  31.      */
  32.     public function logout(Request $requestResponse $responseTokenInterface $token)
  33.     {
  34.         foreach ($this->cookies as $cookieName => $cookieData) {
  35.             $response->headers->clearCookie($cookieName$cookieData['path'], $cookieData['domain'], $cookieData['secure'] ?? falsetrue$cookieData['samesite'] ?? null);
  36.         }
  37.     }
  38. }