للاستخدام في التطوير المحلي فقط. غير مفيد للمواقع الإنتاجية
عند العمل على Discourse محليًا، من المفيد القدرة على اختبار جميع طرق تسجيل الدخول المختلفة. في معظم الأوقات، لا نهتم بعملية المصادقة الفعلية، بل نريد فقط معرفة كيفية تفاعل Discourse مع المدخلات المختلفة. على سبيل المثال:
- ماذا يحدث إذا لم يتم التحقق من البريد الإلكتروني؟
- ماذا يحدث إذا لم يرسل مزود المصادقة عنوان بريد إلكتروني؟
- ماذا يحدث إذا لم يرسل مزود المصادقة اسم مستخدم؟
- ماذا يحدث إذا تطابق البريد الإلكتروني ولكن لم يتطابق المعرف الفريد (UID)؟
- كيف تعمل الدعوات عند استخدام المصادقة الخارجية؟
- كيف تبدو شاشة تسجيل الدخول؟
- (يمكنني الاستمرار إلى ما لا نهاية هنا… لكنك فهمت الفكرة)
حتى الآن، كانت الخيار الحقيقي الوحيد هو “إعداد مصادقة Google/Twitter/OAuth2/إلخ الحقيقية على بيئة التطوير الخاصة بك”. هذا يعمل، لكنه أمر مرهق للغاية، ثم تجد نفسك محاصرًا في إنشاء حسابات Google/Twitter متعددة لاختبار مجموعات مختلفة.
لقد صنعت شيئًا أكثر سلاسة:
إذا قمت بتثبيت هذه الإضافة محليًا، فستوفر لك مزود مصادقة وهمي. من وجهة نظر Discourse، يعمل بنفس طريقة أي مزود آخر (مثل Google، Twitter، OAuth2، OIDC، إلخ).
عند بدء عملية تسجيل الدخول، ستظهر لك هذه الشاشة، حيث يمكنك إدخال أي بيانات تريدها يدويًا. سيتم تذكر القيم المقدمة عبر ملف تعريف ارتباط (cookie)، لذا يمكنك تكرار نفس الإجراء بسهولة. تتطابق الحقول مع مخطط تجزئة مصادقة Omniauth.
يستخدم نظام ManagedAuthenticator، لذا سيتم تخزين البيانات في جدول user_associated_accounts مع provider_name قيمته developmentauth.
يدعم أيضًا DiscourseConnect! لتجربة ذلك، ما عليك سوى تثبيت الإضافة وتفعيل إعداد enable_discourse_connect. في المرة القادمة التي تسجل فيها الدخول، سترى جميع حقول DiscourseConnect جاهزة للاستخدام.
يرجى تجربتها في المرة القادمة التي تعمل فيها على المصادقة، وأخبرني إذا كان هناك أي شيء يمكن تحسينه ![]()
ملاحظة: هذه هي إضافة المصادقة الأقل أمانًا على الإطلاق التي تم اختراعها. لذلك، سترفض التشغيل في بيئة إنتاجية، ويجب عليك تعيين متغير البيئة
DISCOURSE_DEV_ALLOW_ANON_TO_IMPERSONATEإلى1لتعمل



