如何使用多个Guard认证器
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 5.2,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
如何使用多个Guard认证器
Guard身份验证组件允许您同时使用许多不同的身份验证器。
入口点是(您的一个身份验证者的)服务id,它start ()
方法启动身份验证过程。
具有共享入口点的多个身份验证器
有时,您希望为用户提供不同的身份验证机制,如表单登录和Facebook登录,而两个入口点都将用户重定向到相同的登录页面。但是,在您的配置中,您必须显式地说明要使用哪个入口点。
这是你的安全配置的实际效果:
- YAML
- XML
- PHP
12 3 4 5 6 7 8 9 10 11 12
#配置/包/ security.yaml安全:#……防火墙:默认值:匿名:真正的懒惰:真正的警卫:身份验证器:-App \安全\ LoginFormAuthenticator-App \安全\ FacebookConnectAuthenticatorentry_point:App \安全\ LoginFormAuthenticator
这种方法有一个限制——你只能使用一个入口点。
具有独立入口点的多个身份验证器
但是,在某些用例中,您可以使用身份验证器来保护应用程序的不同部分。例如,您有一个登录表单,它保护应用程序前端的安全区域,以及使用API令牌保护的API端点。由于每个防火墙只能配置一个入口点,解决方案是将配置拆分为两个独立的防火墙:
- YAML
- XML
- PHP
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#配置/包/ security.yaml安全:#……防火墙:api:模式:^ / api /警卫:身份验证器:-App \安全\ ApiTokenAuthenticator默认值:匿名:真正的懒惰:真正的警卫:身份验证器:-App \安全\ LoginFormAuthenticatoraccess_control:-{路径:“^ /登录”,角色:IS_AUTHENTICATED_ANONYMOUSLY}-{路径:“^ / api”,角色:ROLE_API_USER}-{路径:' ^ /,角色:ROLE_USER}
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。