DiscourseSsoConsumer هو امتداد MediaWiki يسمح لموقع MW بالمصادقة على المستخدمين عبر واجهة برمجة تطبيقات مزود Discourse Connect (أي، يكتب المستخدمون كلمات المرور الخاصة بهم في Discourse). تم إصدار الإصدار 2.0.0 بالأمس، والذي تم إصداره في الأصل قبل عام. أعتقد أن الوقت قد حان لإعطاء هذا الامتداد موضوعه الخاص هنا حتى يسهل العثور عليه (مقارنة بالمنشور الوحيد الأصلي في موضوع SSO Provider: Use Discourse as an identity provider (SSO, DiscourseConnect) - #104 by mdoggydog).
يتم تثبيته عبر composer. توجد تعليمات التثبيت/التكوين في README.
يبدو أن الدالة AuthManager::singleton() تم إهمالها في الإصدار 1.35 وتمت إزالتها في الإصدار 1.37.
أعتقد أنني قمت بإصلاح هذا الآن؛ يرجى تجربة الإصدار الحالي dev-main لهذا الامتداد. (يمكنك تثبيته عبر composer، باستخدام “dev-main” كرقم الإصدار.) يعمل معي على الإصدار 1.35، وإذا كان يعمل معك في الإصدار 1.37 فسأقوم بتمييزه رسميًا كإصدار إصلاح للأخطاء (على سبيل المثال، 2.0.1).
لقد قمت بتثبيت التطبيق على هاتف Android الخاص بي، أي PWA مستقل. عندما أقوم بتسجيل الدخول إلى MediaWiki الخاص بي، فإنه يعيد التوجيه ويفتح تطبيق Discourse PWA ثم يفتح عنوان URL الخاص بـ MediaWiki الخاص بي في PWA نفسه بينما يجب أن يعيد التوجيه إلى متصفح الويب المقابل. أعتقد أن Discourse لا يكتشف ويعيد التوجيه بشكل صحيح إلى متصفح الويب المقابل الذي بدأ تسجيل الدخول. هذا لا يتعلق بامتداد MediaWiki، بل يتعلق بكيفية تعامل Discourse مع عمليات إعادة التوجيه/عناوين URL الخارجية. هل هناك أي إعداد يمكنني تعديله لجعل تسجيل الدخول يعمل مع تطبيق Discourse Progressive Web App؟
أتخيل أن هناك خللًا أساسيًا في التفاعل بين PWA ومزود SSO الخاص بـ Discourse، ولكن: كلما أراد مستهلك SSO إعادة المصادقة لمستخدم قام بتسجيل الدخول بالفعل إلى Discourse، فسيخبر متصفح العميل بإعادة التوجيه إلى خادم Discourse، متوقعًا أن يقوم خادم Discourse بالتحقق من ملفات تعريف الارتباط الحالية للمستخدم وإعادة التوجيه مرة أخرى إلى المستهلك… ويتوقع أن تتم كل هذه عمليات إعادة التوجيه بصمت في المتصفح دون أن يرى المستخدم أي شيء سوى تحميل الصفحة النهائية.
ولكن، تم تسجيل PWA مع Android كتطبيق منفصل تمامًا يتم استدعاؤه لعناوين URL/نطاقات معينة، أليس كذلك؟ عندما يقوم PWA بإعادة التوجيه مرة أخرى إلى المتصفح الأصلي، كيف سيعرف المتصفح الأصلي أن هذا الرابط الجديد له علاقة بطلبه الأصلي؟ وكيف سيعرف Android أنه يجب عليه فقط عرض PWA للمستخدم إذا كان PWA يحتاج بالفعل إلى مدخلات من المستخدم؟