我已经在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})仍然要登录用户。
我该怎么做?我了解Guard component,但似乎无法弄清楚如何将其付诸实践。
谢谢!
答案 0 :(得分:0)
您可以将ChainUserProvider用于此目的,并将其与ExternalUserProvider连接起来。
https://symfony.com/doc/4.0/security/multiple_user_providers.html