FOSUserBundle кодировщик не настроен: создается новый пользователь - PullRequest
13 голосов
/ 09 марта 2012

Я хотел бы создать нового пользователя в 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]

но я всегда получаю одну и ту же ошибку ... Знаете, как это исправить? решение здесь у меня не работает

Спасибо

Ответы [ 3 ]

40 голосов
/ 09 марта 2012

Вам не хватает своего собственного класса пользователя в конфигурации кодировщиков, например:

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
3 голосов
/ 15 декабря 2015

Для Symfony 2.7+ вы должны использовать эту конфигурацию:

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

НО! у вас также должен быть PHP 5.5 и Apache 2.4 или Nginx.

0 голосов
/ 03 августа 2018

редактировать security.yml в app / config

security:
    encoders:
        AppBundle\Entity\User: bcrypt

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username

под основным добавить также "logout: ~"

Для Symfony 4.x см. https://youtu.be/QgYQWGwY9tM

...