FOSUserBundle nenhum codificador foi configurado:criando um novo usuário
-
10-12-2019 - |
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
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