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

Метод setToken

Метод setToken класса TokenStorage записывает переданный токен в хранилище токенов. Первым параметром передаётся объект токена, реализующий интерфейс TokenInterface, либо null для очистки хранилища. Метод используется при ручной аутентификации пользователя, например после успешного входа по форме или через API.

Синтаксис

public function setToken(?TokenInterface $token): void

Пример

Давайте сохраним токен аутентификации вручную через TokenStorage:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; use Symfony\Component\Security\Core\User\UserInterface; class AuthController extends AbstractController { public function login(TokenStorageInterface $tokenStorage, UserInterface $user): Response { $token = new UsernamePasswordToken($user, 'main', $user->getRoles()); $tokenStorage->setToken($token); return new Response('token saved'); } } ?>

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

"token saved"

Пример

Давайте проверим, что токен действительно сохранён, прочитав его через getToken:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; use Symfony\Component\Security\Core\User\UserInterface; class AuthController extends AbstractController { public function login(TokenStorageInterface $tokenStorage, UserInterface $user): Response { $token = new UsernamePasswordToken($user, 'main', $user->getRoles()); $tokenStorage->setToken($token); $res = $tokenStorage->getToken()->getUser()->getUserIdentifier(); return new Response($res); } } ?>

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

"user"

Пример

Давайте очистим хранилище, передав в setToken значение null:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; class AuthController extends AbstractController { public function logout(TokenStorageInterface $tokenStorage): Response { $tokenStorage->setToken(null); return new Response('token cleared'); } } ?>

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

"token cleared"

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

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