Я создал базовую форму входа в Symfony 4, подобную этой, и все работает нормально:
security:
encoders:
App\Entity\User:
algorithm: bcrypt
providers:
backend_user_provider:
entity:
class:
App\Entity\User
property: email
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
cms:
switch_user: true
pattern: ^/
http_basic: ~
provider: backend_user_provider
anonymous: ~
form_login:
login_path: login
check_path: login_submit
logout:
path: logout
target: login
remember_me:
secret: '%kernel.secret%'
lifetime: 604800
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: ROLE_BACKEND }
Теперь я бы хотел добиться того, чтобы, если пользователь не существует, я мог бы сделать CURL-вызов в определенное внешнее расположение (с адресом электронной почты и паролем) и в зависимости от результата JSON (скажем, {success: true} или {success: false}) все равно войти в систему.
Как мне это сделать? Я знаю про Компонент защиты, но не могу понять, как применить его на практике.
Заранее спасибо!






Для этой цели вы можете использовать ChainUserProvider и подключить его к ExternalUserProvider.
https://symfony.com/doc/4.0/security/multiple_user_providers.html
Возможно, вы захотите добавить еще несколько деталей, учитывая, что провайдеры пользователей не имеют доступа к паролю.