FOSUserBundle未配置编码器:创建新用户



我想在FOSUserBundle(Symfony2)中创建一个新用户,但我总是收到相同的消息(我使用的是php app/console fos:user:create):

尚未为帐户"MyProject\UserBundle\Entity\User"配置编码器。

进口商品的顺序正确

public function registerBundles()
{
    $bundles = array(
        //...
        new MyProjectUserBundleMyProjectUserBundle(),
        new FOSUserBundleFOSUserBundle(),
    );

安全文件:

security:
    encoders:
        SymfonyComponentSecurityCoreUserUser: plaintext
    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

但我总是犯同样的错误。。。你知道怎么解决这个问题吗?这里的解决方案对我不起作用

感谢

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

security:
    encoders:
        SymfonyComponentSecurityCoreUserUser: plaintext
        MyProjectUserBundleEntityUser: sha512

或者,您可以在FOSUserBundle界面上匹配它,如下所示:

security:
    encoders:
        SymfonyComponentSecurityCoreUserUser: plaintext
        FOSUserBundleModelUserInterface: sha512

对于Symfony 2.7+,您应该使用以下配置:

security:
    encoders:
        FOSUserBundleModelUserInterface: bcrypt

但是!您还应该拥有PHP 5.5和Apache 2.4或Nginx。

在app/config 中编辑security.yml

security:
    encoders:
        AppBundleEntityUser: bcrypt
    providers:
        fos_userbundle:
            id: fos_user.user_provider.username

在main下添加"logout:~"以及

有关Symfony 4.x,请参阅https://youtu.be/QgYQWGwY9tM

相关内容

最新更新