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

Класс TokenStorage

Класс TokenStorage отвечает за хранение токена аутентификации (объекта, реализующего TokenInterface) в течение текущего HTTP-запроса. Он позволяет получить текущий токен, установить новый или проверить наличие аутентифицированного пользователя. Класс доступен через сервис-контейнер по идентификатору security.token_storage. Основные методы: getToken, setToken.

Синтаксис

use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; // получение текущего токена $token = $tokenStorage->getToken(); // установка токена $tokenStorage->setToken($token);

Пример

Давайте получим текущий токен и выведем имя пользователя:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; class AuthController extends AbstractController { #[Route('/auth/token', name: 'auth_token')] public function token(TokenStorageInterface $tokenStorage): Response { $token = $tokenStorage->getToken(); if ($token === null) { return new Response('No token'); } return new Response($token->getUserIdentifier()); } } ?>

Результат выполнения кода для аутентифицированного пользователя 'abcde':

abcde

Пример

Давайте установим новый токен вручную:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken; class AuthController extends AbstractController { #[Route('/auth/set-token', name: 'auth_set_token')] public function setToken(TokenStorageInterface $tokenStorage): Response { $token = new UsernamePasswordToken('user', 'main', ['ROLE_USER']); $tokenStorage->setToken($token); return new Response('Token set'); } } ?>

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

"Token set"

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

  • класс Security,
    который предоставляет удобный доступ к сервисам аутентификации
  • метод getToken,
    который возвращает текущий токен
  • метод setToken,
    который устанавливает токен
  • класс AuthorizationChecker,
    который проверяет права доступа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить