Я пытаюсь реализовать аутентификацию токена (в дополнение к форме входа в систему), выполнив следующие статьи:
https://symfony.com/doc/current/security/api_key_authentication.html
https://symfony.com/doc/current/security/multiple_user_providers.html
Вот мой security.yaml:
main:
anonymous: true
pattern: ^/
provider: db_provider
form_login:
login_path: auth_login
check_path: auth_login
#secured_area:
logout:
path: /auth/logout
target: /
token:
anonymous: true
pattern: ^/token
stateless: false
simple_preauth:
authenticator: App\Security\TokenAuthenticator
provider: token_user_provider
Это не работает - аутентификаторы токенов никогда не будут вызваны, если я не закомментирую "главный" брандмауэр.
Я думаю, что смогу выполнить свое требование, следуя этой статье и используя только «основной» брандмауэр:
https://symfony.com/doc/current/security/multiple_user_providers.html
Однако я бы предпочел подход, который я пробую сейчас, потому что я не хочу, чтобы аутентификатор токена срабатывал при каждом отдельном запросе, я хочу, чтобы он ограничивался только путями /token
, и я бы предпочел избегать проверки путей внутри TokenAuthenticator::createToken(...)
как указано в документации:
https://symfony.com/doc/current/security/api_key_authentication.html#only-authenticating-for-certain-urls
Есть идеи, предложения?