Pergunta

eu gostaria de criar um novo usuário no FOSUserBundle (Symfony2), mas sempre recebo a mesma mensagem (estou usando php app/console fos:user:create ) :

Nenhum codificador foi configurado para a conta "MyProject\UserBundle\Entity\User".

as importações estão na ordem certa

public function registerBundles()
{
    $bundles = array(
        //...
        new MyProject\UserBundle\MyProjectUserBundle(),
        new FOS\UserBundle\FOSUserBundle(),
    );

o arquivo de segurança:

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]

mas estou sempre recebendo o mesmo erro...Você sabe como consertar isso?O solução aquinão está funcionando para mim

Obrigado

Foi útil?

Solução

Está faltando a classe do seu próprio usuário na configuração dos codificadores, por exemplo:

security:
    encoders:
        Symfony\Component\Security\Core\User\User: plaintext
        MyProject\UserBundle\Entity\User: sha512

Alternativamente, você pode combiná-lo na interface FOSUserBundle assim:

security:
    encoders:
        Symfony\Component\Security\Core\User\User: plaintext
        FOS\UserBundle\Model\UserInterface: sha512

Outras dicas

Para Symfony 2.7+ você deve usar esta configuração:

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

MAS!você também deve ter PHP 5.5 e Apache 2.4 ou Nginx.

edite security.yml em app/config

security:
    encoders:
        AppBundle\Entity\User: bcrypt

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username

em principal adicione "logout:~" também

Para Symfony 4.x, consulte https://youtu.be/QgYQWGwY9tM

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top