FOSUSERBundle未配置编码器:创建新用户
-
10-12-2019 - |
题
我想在fosuserbundle(symfony2)中创建一个新用户,但我总是得到相同的消息(我正在使用php app/console fos:user:create
):
没有为帐户“myproject \ userbundle \ entity \ user”配置了编码器。
导入处于正确的顺序
.public function registerBundles() { $bundles = array( //... new MyProject\UserBundle\MyProjectUserBundle(), new FOS\UserBundle\FOSUserBundle(), );
安全文件:
.security: encoders: Symfony\Component\Security\Core\User\User: plaintext role_hierarchy: ROLE_ADMIN: ROLE_USER ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
但我总是得到同样的错误......你知道如何解决这个问题吗?解决方案在这里 不适合我
解决方案
您在编码器配置中缺少自己的用户类,例如:
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
MyProject\UserBundle\Entity\User: sha512
.
或者,您可以将其与fosuserBundle接口相匹配:
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
FOS\UserBundle\Model\UserInterface: sha512
. 其他提示
for symfony 2.7+您应该使用此配置:
security:
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
.
但是!您还应该具有PHP 5.5和Apache 2.4或Nginx。
编辑app / config 中的security.yml
security:
encoders:
AppBundle\Entity\User: bcrypt
providers:
fos_userbundle:
id: fos_user.user_provider.username
.
在主添加“注销:〜”下
对于symfony 4.x查看 https://youtu.be/qgyqwgwy9tm
不隶属于 StackOverflow