FOSUserBundle لم يتم تكوين أي برنامج تشفير:إنشاء مستخدم جديد

StackOverflow https://stackoverflow.com//questions/9633987

  •  10-12-2019
  •  | 
  •  

سؤال

أرغب في إنشاء مستخدم جديد في 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]

لكني دائما أتلقى نفس الخطأ..هل تعرف كيفية إصلاح هذا؟ال الحل هنالا يعمل بالنسبة لي

شكرًا

هل كانت مفيدة؟

المحلول

أنت تفتقد فئة المستخدم الخاصة بك في تكوين برامج التشفير، على سبيل المثال:

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

نصائح أخرى

بالنسبة إلى Symfony 2.7+، يجب عليك استخدام هذا التكوين:

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

لكن!يجب أن يكون لديك أيضًا PHP 5.5 وApache 2.4 أو Nginx.

تحرير Security.yml في التطبيق/التكوين

security:
    encoders:
        AppBundle\Entity\User: bcrypt

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username

ضمن إضافة رئيسية "تسجيل الخروج:~" كذلك

بالنسبة إلى Symfony 4.x، راجع https://youtu.be/QgYQWGwY9tM

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top