Как в symfony secure проверить авторизованность пользователя?

В Symfony есть несколько способов проверить, авторизован ли пользователь.

1. Использование аннотаций в контроллере:
Можно использовать аннотацию @IsGranted, которая позволяет проверить, имеет ли текущий пользователь определенную роль или доступ к определенному ресурсу:

   use SensioBundleFrameworkExtraBundleConfigurationIsGranted;

   /**
    * @Route("/example")
    * @IsGranted("ROLE_USER")
    */
   public function exampleAction()
   {
       // Ваш код
   }

В приведенном примере ROLE_USER - это роль, которую должен иметь пользователь, чтобы получить доступ к этому методу контроллера. Если пользователь не авторизован или у него нет необходимой роли, Symfony автоматически вернет 403 ошибку доступа.

2. Использование компонента Security:
В Symfony имеется набор инструментов для авторизации и аутентификации пользователей, включая компонент Security. С помощью этого компонента вы можете проверить авторизованность пользователя внутри контроллера:

   use SymfonyComponentSecurityCoreSecurity;

   public function exampleAction(Security $security)
   {
       if ($security->isGranted('ROLE_USER')) {
           // Пользователь авторизован
           // Ваш код
       } else {
           // Пользователь не авторизован
       }
   }

В приведенном примере $security->isGranted('ROLE_USER') вернет true, если текущий пользователя имеет роль ROLE_USER, и false в противном случае.

3. Использование шаблонов Twig:
В Symfony шаблонизатор Twig имеет встроенную поддержку для проверки авторизованности пользователя:

   {% if is_granted('ROLE_USER') %}
       {# Код, который должен быть видимым только для авторизованных пользователей #}
   {% else %}
       {# Код, который должен быть видимым только для неавторизованных пользователей #}
   {% endif %}

В этом примере фрагмент кода появится только для пользователей с ролью ROLE_USER.

4. Использование компонента Guard:
Компонент Guard предоставляет более гибкие инструменты для проверки авторизованности пользователя. Вы можете создавать собственные классы "гвардейцев" (guard), которые проверяют и аутентифицируют пользователей в зависимости от различных условий.

Он обеспечивает полный контроль над процессом аутентификации и авторизации, и может быть настроен для работы с различными типами аутентификации, такими как форма логина, токены API и другие.

Пример использования Guard можно найти в документации Symfony: https://symfony.com/doc/current/security/guard_authentication.html

Надеюсь, это поможет вам проверить авторизованность пользователя в Symfony.