اقتراح لتحسين تطوير المصادقة المدمجة

كما قال جيف أتوود، تُعد البريد الإلكتروني جوهر نظام Discourse، ولا ينبغي أو لا يمكننا تجاهله أو تجاوزه.

لكن الواقع قد يكون أكثر تعقيدًا مما نتخيل، فبعض المنصات لا توفر عنوان بريد إلكتروني، ومع ذلك نرغب في دمجها مع نظام Discourse الخاص بنا. حل discourse-oauth2-basic هو:

يعتبر discourse-oauth2-basic إضافة عامة تدعم OAuth2، لذا لم يتضمن أي ميزات مخصصة لمنصة معينة. لكن عند تطوير مصادق مخصص لمنصة معينة ولا يوفر عنوان بريد إلكتروني، قد نرغب في دمج نظام إشعارات المنصة بدلاً من إشعارات البريد الإلكتروني الافتراضية.

الحل الذي أقترحه هو إنشاء عنوان بريد إلكتروني وهمي للهوية الفريدة مثل بادئة-المنصة + معرف-المنصة@yourdiscours.com، بالإضافة إلى مُحقق بريد إلكتروني يقرر نظام الإشعارات الذي يجب استخدامه، أو استخدام بعض الخطافات (hooks) والمرشحات (filters) لبناء المرسل عند إرسال إشعار، سواء كان ذلك عبر إشعارات البريد الإلكتروني الافتراضية أو عبر المصادق المُنفذ. أعتقد أن هذا الحل غير تدخلي بالنسبة للهيكلية الحالية.

إعجاب واحد (1)

هذا ممكن تمامًا. على سبيل المثال، يمكنك استخدام تسجيل الدخول عبر Steam (الذي لا يوفر عنوان بريد إلكتروني)، وتعيين عناوين بريد إلكتروني وهمية في نسخة معدلة من الإضافة، واستخدام إشعارات الدفع الأصلية (الموجودة في Windows وMac OS وLinux وAndroid) لجميع احتياجات الإشعارات.

سيكون ذلك دائمًا بحاجة إلى بعض العمل المخصص للتكامل مع المنصة المحددة، وفي Discourse لدينا بعض العملاء يستخدمون إعدادًا مشابهًا بنجاح كبير. إنهم من بين أكبر النسخ الموجودة حاليًا!

4 إعجابات

نعم، لكن يبدو أن Discourse ترسل إشعار التصدير مباشرة عبر Email::Sender عن طريق الترميز الصريح بدلاً من استدعاء خطاف حدث الإشعار، مثل DiscourseEvent.

لذا، كيف يمكن “إعادة توجيه” الإشعار إلى نظام الإشعارات المخصص لدينا؟ هل هناك مثال عام متاح؟

إعجاب واحد (1)