如何使用多个用户提供程序

编辑本页

警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 3.0,现已不再维护。

本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。

如何使用多个用户提供程序

每种身份验证机制(例如HTTP身份验证、表单登录等)都只使用一个用户提供程序,并且默认使用第一个声明的用户提供程序。但是,如果您希望通过配置指定一些用户,而在数据库中指定其余用户,该怎么办呢?这可以通过创建一个新的提供者将两者链接在一起来实现:

  • YAML
  • XML
  • PHP
12 3 4 5 6 7 8 9 10 11 12
# app / config / security.yml安全:提供者:chain_provider:链:提供者:[in_memory,user_db]in_memory:记忆:用户:foo:密码:测验user_db:实体:类:实体AppBundle \ \用户,属性:用户名

现在,所有身份验证机制都将使用chain_provider,因为它是第一个指定的。的chain_provider是否会依次尝试从两个in_memory而且user_db提供者。

您还可以配置防火墙或单独的身份验证机制来使用特定的提供程序。同样,除非显式指定了提供者,否则总是使用第一个提供者:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8 9 10 11
# app / config / security.yml安全:防火墙:secured_area:#……模式:^ /供应商:user_dbhttp_basic:域:“安全演示区”供应商:in_memoryform_login:

在本例中,如果用户试图通过HTTP认证登录,认证系统将使用in_memory用户提供者。但是,如果用户试图通过表单登录登录,则user_dbProvider将被使用(因为它是整个防火墙的默认值)。

有关用户提供程序和防火墙配置的详细信息,请参见SecurityBundle配置("security")

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。