首页 > 解决方案 > Symfony:限制身份验证器的会话

问题描述

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

安全.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

我需要使用 session forform_login和 take away for TokenAuthenticator,因为请求可以通过不同的方式向端点发出。自定义身份验证器是使用本文制作的。

标签: symfonyauthentication

解决方案


推荐阅读