Symfony:限制身份验证器的会话

时间:2021-04-20 13:33:42

标签: symfony authentication

我有 form_login 验证器和我的自定义验证器。当第二个身份验证器 symfony 进行身份验证处理时,将创建新会话并在每个请求上执行此操作。如果我在 security.yaml stateless: true 中写入,那么 form_login 不会对用户进行身份验证,因为会话没有使用。如何仅为第一个身份验证者存储会话?

security.yaml:

security:
    enable_authenticator_manager: true
    encoders:
        App\Entity\User:
            algorithm: auto
    providers:
        app_user_provider:
            entity:
                class: App\Entity\User
                property: username
    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main:
            lazy: true
            provider: app_user_provider
            form_login:
                login_path: app_login
                check_path: app_login
                default_target_path: /
            custom_authenticators:
                - App\Security\TokenAuthenticator
            entry_point: form_login
            logout:
                path: app_logout

我需要为 form_login 使用会话,而为 TokenAuthenticator 使用会话,因为请求可以以不同的方式发送到端点。使用此 article 制作了自定义身份验证器。

0 个答案:

没有答案