我有 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 制作了自定义身份验证器。