入口点:帮助用户开始身份验证
编辑本页入口点:帮助用户开始身份验证
当未经身份验证的用户试图访问受保护的页面时,Symfony会为他们提供适当的响应,让他们开始身份验证(例如,重定向到登录表单或ob娱乐下载为api显示401未授权的HTTP响应)。
然而,有时一个防火墙有多种身份验证方式(例如表单登录和社交登录)。在这些情况下,需要配置认证入口点.
属性对其进行配置entry_point
设置:
- YAML
- XML
- PHP
12 3 4 5 6 7 8 9 10 11 12 13
#配置/包/ security.yaml安全:#……防火墙:主要:#允许使用表单或自定义验证器进行身份验证form_login:~custom_authenticators:-App \安全\ SocialConnectAuthenticator#配置表单认证为未认证用户的入口点entry_point:form_login
请注意
您还可以通过创建实现的类来创建自己的身份验证入口点AuthenticationEntryPointInterface.然后你可以设置entry_point
到服务id(例如:entry_point: App \安全\ CustomEntryPoint
)
具有独立入口点的多个身份验证器
但是,在某些用例中,您可以使用身份验证器来保护应用程序的不同部分。例如,您有一个登录表单,它保护由API密钥保护的外部方使用的主网站和API端点。
由于每个防火墙只能配置一个入口点,解决方案是将配置拆分为两个独立的防火墙:
- YAML
- XML
- PHP
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16
#配置/包/ security.yaml安全:#……防火墙:api:模式:^ / api /custom_authenticators:-App \安全\ ApiTokenAuthenticator主要:懒惰:真正的form_login:~access_control:-{路径:“^ /登录”,角色:PUBLIC_ACCESS}-{路径:“^ / api”,角色:ROLE_API_USER}-{路径:' ^ /,角色:ROLE_USER}
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。