لا يمكن تعطيل المصادقة الثنائية للمستخدم

لدينا مستخدم مفعّل عليه المصادقة الثنائية (2FA)، ولا يمكننا تعطيلها له.

عند النقر على زر “تعطيل” في حسابه، تظهر لنا الرسالة التالية:


(لقد زوّدتنا بمعاملات غير صالحة للطلب: Discourse::InvalidParameters)

لا توجد صف في جدول users_second_factors يحمل معرف المستخدم (user_id). لقد حاولت إضافة صف وهمي، مما سمح لي بالنقر على زر “تعطيل” دون ظهور خطأ، لكنه يمسح صفّي الوهمي فقط ويترك المصادقة الثنائية (2FA) مفعّلة للمستخدم.

كما جربت مهمة rake users:disable_2fa[username]، التي تُرجع الرسالة تم تعطيل المصادقة الثنائية للمستخدم، لكن الملف الشخصي للمستخدم في لوحة الإدارة ما زال يُظهر المصادقة الثنائية: نعم.

هل هناك أي شيء آخر يمكنني تجربته؟

جرب عبر وحدة تحكم Rails:

سيكون من الجيد أيضًا معرفة إصدار Discourse الذي تعمل عليه. فقد تم إصلاح مشكلة عدم القدرة على تعطيل المصادقة الثنائية (2FA) عبر واجهة المستخدم منذ الإصدار الأول للميزة.

شكرًا لك @omarfilip .. قمت بحذف UserSecondFactor لكنني لم أكن أعرف عن UserSecurityKey.

لم يكن لدى هذا المستخدم سجل UserSecondFactor، لكنه كان لديه سجل UserSecurityKey.

بمجرد إزالته، يظهر ملفه الشخصي ‘المصادقة الثنائية: لا’ – شكرًا لك!

@jomaxro نحن نستخدم الإصدار 2.5.0.beta4 ( 8d3900c6da )

يبدو أن هناك مشكلة لا يزال بإمكانني فيها القيام بذلك عبر واجهة المستخدم، لكنني أحصل على مشكلة المعلمات غير الصالحة، ربما بسبب عدم وجود سجل UserSecondFactor؟

هذا الإصدار قديم وغير مدعوم، قم بالتحديث في أقرب وقت ممكن.

بصرف النظر عن كونه قديماً وغير مدعوم، فإنك أيضاً تفتقر إلى أكثر من اثني عشر إصلاحاً أمنياً، لذا فإن موقعك عرضة للخطر. يرجى الترقية.