14

我想在 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]

但我总是遇到同样的错误......你知道如何解决这个问题吗?这里的解决方案 对我不起作用

谢谢

4

3 回答 3

41

您在编码器配置中缺少自己的用户类,例如:

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
于 2012-03-09T12:25:16.920 回答
3

对于 Symfony 2.7+,你应该使用这个配置:

security:
    encoders:
        FOS\UserBundle\Model\UserInterface: bcrypt

但!你还应该有 PHP 5.5 和 Apache 2.4 或 Nginx。

于 2015-12-15T20:25:20.160 回答
0

在 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

于 2018-08-03T18:00:45.003 回答