Список управления доступом к безопасности Symfony, URL-адрес с заполнителем uuid

как я могу сказать, что я хочу, чтобы URL-адрес, например, такой как /users/{id}/confirm, был общедоступным???? я пробовал с

- { path: ^/users/{id}/confirm, roles: PUBLIC_ACCESS }

и синтаксис неверен, также я пытался покрыть URL-адрес кавычками и получил ответ 404.

Третья попытка:

- { path: ^/users/\[0-9a-f]{8}-[0-9a-f]{4}-1[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/confirm, roles: PUBLIC_ACCESS }

yaml неправильный

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
50
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

#config/packages/security.yaml
    security:
        access_control:
            - { path: ^/admin, roles: ROLE_ADMIN }
            - { path: ^/users, roles: ROLE_USER}
            - { path: ^/register, roles: PUBLIC_ACCESS }

И в вашем контроллере вы можете использовать аннотации или ограничения атрибутов:

#[IsGranted('ROLE_USER', statusCode: 403, message: 'Please to login..')]
#[Route('/users/{id}', name: 'name_of_..')]

Дополнительная информация: https://symfony.com/doc/current/security/access_control.html#2-access-enforcement

Возможно, попробовать разные роли в ваших атрибутах/аннотациях ограничений.

это я знаю, но я хочу, чтобы все конечные точки пользователя были закрытыми, кроме этой конкретной /users/{id}/confirm, ну, если это невозможно, я могу сделать это так /confirm?id=

Bogdan Dubyk 09.05.2023 22:07

найдено `- { атрибуты: {'_route': 'admin'}, роли: ROLE_ADMIN }` так что, может быть, я могу сделать это по имени маршрута, попробую

Bogdan Dubyk 09.05.2023 22:09

вместо использования идентификатора заполнителя вам нужно использовать числовой заполнитель

// config/packages/security.yaml
security:
    access_control:
        - { path: ^/users/\d+$/confirm, roles: PUBLIC_ACCESS }

но мой идентификатор UUID не целое число

Bogdan Dubyk 15.05.2023 23:05
Ответ принят как подходящий

исправлено использованием имени маршрута вместо пути. Так:

- { attributes: {'_route': 'confirmEmail'}, roles: PUBLIC_ACCESS }

Другие вопросы по теме