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

しかし!PHP5.5とApache2.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

メインの下に「logout:〜」も追加します

Symfony 4.xについては、https: //youtu.be/QgYQWGwY9tMを参照してください。

于 2018-08-03T18:00:45.003 に答える