РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
623 of 1361 menu

Метод isTokenValid

Метод isTokenValid класса CsrfTokenManager проверяет, совпадает ли переданное значение токена с токеном, сохранённым в хранилище для указанного идентификатора. Первым параметром передаётся объект CsrfToken, который содержит идентификатор и значение токена. Метод возвращает true, если токен валиден, и false в противном случае.

Синтаксис

public function isTokenValid(CsrfToken $token): bool

Пример

Давайте создадим менеджер токенов, сгенерируем токен и проверим его валидность:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Security\Csrf\CsrfToken; use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface; class CsrfController extends AbstractController { public function check(CsrfTokenManagerInterface $csrfManager): Response { $token = $csrfManager->getToken('article_form'); $res = $csrfManager->isTokenValid($token); return new Response(var_export($res, true)); } } ?>

Результат выполнения кода:

true

Пример

Давайте проверим валидность токена с неверным значением:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Security\Csrf\CsrfToken; use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface; class CsrfController extends AbstractController { public function check(CsrfTokenManagerInterface $csrfManager): Response { $csrfManager->getToken('article_form'); $token = new CsrfToken('article_form', 'invalid_value'); $res = $csrfManager->isTokenValid($token); return new Response(var_export($res, true)); } } ?>

Результат выполнения кода:

false

Пример

Давайте проверим валидность токена для несуществующего идентификатора:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Security\Csrf\CsrfToken; use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface; class CsrfController extends AbstractController { public function check(CsrfTokenManagerInterface $csrfManager): Response { $token = new CsrfToken('unknown_form', 'abcde'); $res = $csrfManager->isTokenValid($token); return new Response(var_export($res, true)); } } ?>

Результат выполнения кода:

false

Смотрите также

  • класс CsrfTokenManager,
    который управляет CSRF-токенами
  • метод getToken,
    который генерирует CSRF-токен
  • метод refreshToken,
    который пересоздаёт CSRF-токен
  • метод removeToken,
    который удаляет CSRF-токен
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить