Метод getToken класса Security
Метод getToken класса Security возвращает объект токена
текущего аутентифицированного пользователя. Если пользователь не
аутентифицирован, метод возвращает null. Токен содержит
информацию о пользователе, его ролях и способе аутентификации.
Метод не принимает параметров.
Синтаксис
$token = $security->getToken();
Пример
Давайте получим токен текущего пользователя в контроллере:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Bundle\SecurityBundle\Security;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(Security $security): Response
{
$token = $security->getToken();
if ($token === null) {
return new Response('no token');
}
return new Response($token->getUserIdentifier());
}
}
?>
Результат выполнения кода для аутентифицированного пользователя:
"abcde"
Пример
Давайте проверим, аутентифицирован ли пользователь, используя getToken:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Bundle\SecurityBundle\Security;
class ArticleController extends AbstractController
{
#[Route('/article/check', name: 'article_check')]
public function check(Security $security): Response
{
$token = $security->getToken();
if ($token === null) {
return new Response('anonymous');
}
$roles = $token->getRoleNames();
return new Response(implode(', ', $roles));
}
}
?>
Результат выполнения кода для пользователя с ролями:
"ROLE_USER, ROLE_ADMIN"
Смотрите также
-
класс
Security,
который предоставляет доступ к сервисам безопасности -
метод
getUser,
который возвращает текущего пользователя -
метод
isGranted,
который проверяет наличие прав у пользователя -
класс
TokenStorage,
который хранит токен аутентификации