Я хочу создать пользователя-администратора для обработки бэк-энда и использовать токен jwt для защиты моих маршрутов API.
В своем файле security.yaml я добавляю главный брандмауэр для обработки аутентификации в форме входа:
main:
anonymous: lazy
provider: app_user_provider
guard:
authenticators:
- App\Security\LoginFormAuthenticator
logout:
path: app_logout
и контроль доступа к i-конфигурации:
- { path: '^/admin', roles: ROLE_ADMIN }
- { path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
Теперь, если я использую форму входа, я могу войти как администратор:
После входа я могу получить доступ к административному контроллеру.
Я добавил пакет jwt lexik и добавил config для security.yaml:
login:
pattern: ^/api/login
stateless: true
anonymous: true
json_login:
check_path: /api/login_check
success_handler: lexik_jwt_authentication.handler.authentication_success
failure_handler: lexik_jwt_authentication.handler.authentication_failure
api:
pattern: ^/api
stateless: true
anonymous: true
guard:
authenticators:
- lexik_jwt_authentication.jwt_token_authenticator
И я добавил конфигурацию в api_platform.yaml:
api_platform:
mapping:
paths: ['%kernel.project_dir%/src/Entity']
patch_formats:
json: ['application/merge-patch+json']
swagger:
versions: [3]
api_keys:
apiKey:
name: Authorization
type: header
title: API partage de mandats
version: 1.0.0
collection:
pagination:
client_enabled: true
enabled_parameter_name: pagination # optional
eager_loading:
enabled: false
Я хочу сделать publi c доступ к моему API и предотвратить тестирование API без токена:
Мой API выглядит следующим образом:
Проблема в том, что я могу получить событие ресурса, если я не аутентифицирован:
Мой текущий контроль доступа:
Как добавить конфигурацию в security.yaml для предотвращения публикации * 105 2 * доступ к ресурсам API?