Метод removeToken
Метод removeToken класса CsrfTokenManager
удаляет CSRF-токен из хранилища. Первым
параметром передаётся идентификатор токена
tokenId. Метод не возвращает значения.
Используется для очистки токенов, которые
больше не нужны, например, после успешной
отправки формы или выхода пользователя из системы.
Синтаксис
removeToken(string $tokenId): void
Пример
Давайте создадим токен, проверим его наличие, а затем удалим:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(CsrfTokenManagerInterface $csrfTokenManager): Response
{
$tokenId = 'article_form';
$csrfTokenManager->getToken($tokenId);
$csrfTokenManager->removeToken($tokenId);
return new Response('token removed');
}
}
?>
Результат выполнения кода:
"token removed"
Пример
Давайте проверим, что после удаления токен становится недействительным:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article/check', name: 'article_check')]
public function check(CsrfTokenManagerInterface $csrfTokenManager): Response
{
$tokenId = 'article_form';
$token = $csrfTokenManager->getToken($tokenId);
$csrfTokenManager->removeToken($tokenId);
$isValid = $csrfTokenManager->isTokenValid($token);
return new Response($isValid ? 'valid' : 'invalid');
}
}
?>
Результат выполнения кода:
"invalid"
Смотрите также
-
класс
CsrfTokenManager,
который управляет CSRF-токенами -
метод
getToken,
который создаёт или возвращает существующий токен -
метод
refreshToken,
который пересоздаёт токен с новым значением -
метод
isTokenValid,
который проверяет валидность токена