我有一个Symfony 4网站,其中包含用户和登录过程。我想添加一个新的实体“客户”,并允许客户使用与用户相同的过程登录。
当我尝试编辑 security.yaml 文件时,出现此错误:未明确配置“主”防火墙上的“后卫”侦听器的提供程序,因为存在多家注册提供商。
我的编码器被声明为:
encoders:
App\Entity\User:
algorithm: bcrypt
App\Entity\Client:
algorithm: bcrypt
我的提供者: 提供者:
app_user_provider:
entity:
class: App\Entity\User
property: email
manager_name: user
app_customer_provider:
entity:
class: App\Entity\Customer
property: email
manager_name: customer
还有主防火墙:
main:
logout:
path: app_logout
anonymous: true
guard:
authenticators:
- App\Security\LoginFormAuthenticator
我尝试了其他方法来声明新的防火墙,但是它不起作用。是否可以对两个提供程序使用相同的安全性过程?我想念什么吗?
谢谢
答案 0 :(得分:3)
您应该将提供程序添加到防火墙中,因为您有多个提供程序symfony不知道您要使用哪个提供程序,因此请尝试像这样配置防火墙
main:
logout:
path: app_logout
anonymous: true
provider: app_user_provider
guard:
authenticators:
- App\Security\LoginFormAuthenticator
不要忘记缓存:清除 您可以在他们的文档here
中找到它