FOSUserBundle لم يتم تكوين أي برنامج تشفير:إنشاء مستخدم جديد
-
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
لا تنتمي إلى StackOverflow