Symfony 4外部登录检查

时间:2018-11-16 15:28:46

标签: php symfony symfony4

我已经在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,但似乎无法弄清楚如何将其付诸实践。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以将ChainUserProvider用于此目的,并将其与ExternalUserProvider连接起来。

https://symfony.com/doc/4.0/security/multiple_user_providers.html