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

Метод getToken

Метод getToken класса CsrfTokenManager создаёт и возвращает объект CsrfToken для заданного идентификатора токена. Первым параметром передаётся строковый идентификатор tokenId, который обычно совпадает с именем формы или действием. Если токен с таким идентификатором ещё не создан, менеджер генерирует новое случайное значение и сохраняет его в хранилище. Полученный токен затем используется для проверки CSRF-защиты при отправке формы.

Синтаксис

public function getToken(string $tokenId): CsrfToken

Пример

Давайте создадим CSRF-токен и выведем его строковое значение:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface; class ArticleController extends AbstractController { public function index(CsrfTokenManagerInterface $csrfManager): Response { $token = $csrfManager->getToken('article_form'); return new Response($token->getValue()); } } ?>

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

"a1b2c3d4e5f6g7h8i9j0"

Пример

Давайте передадим токен в Twig-шаблон и используем его в форме:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface; class ArticleController extends AbstractController { public function index(CsrfTokenManagerInterface $csrfManager): Response { $token = $csrfManager->getToken('article_form'); return $this->render('article/index.html.twig', [ 'csrf_token' => $token->getValue(), ]); } } ?>

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

<form method="post"> <input type="hidden" name="_token" value="{{ csrf_token }}"> <button type="submit">Send</button> </form>

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

<form method="post"> <input type="hidden" name="_token" value="a1b2c3d4e5f6g7h8i9j0"> <button type="submit">Send</button> </form>

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

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