توثيق إعداد الإضافة في شبكة متعددة المواقع غير محدث. هذه فرصة جيدة لتنظيمه وتحديث دليل تثبيت وإعداد إضافة WP Discourse.
لاستخدام وظيفة عميل SSO في شبكة متعددة المواقع، يجب تهيئة الإضافة على مستوى الشبكة. يتم ذلك بالنقر على رابط Discourse في لوحة تحكم الشبكة:
في صفحة Discourse الخاصة بالشبكة، حدد خيار تمكين تكوين متعدد المواقع. ثم أدخل عنوان URL الخاص بـ Discourse ومفتاح API واسم المستخدم للنشر في قسم إعدادات الاتصال. انتقل إلى أسفل الصفحة واضغط على زر حفظ الخيارات. يجب أن تظهر رسالة “أنت متصل بـ Discourse!” في أعلى الصفحة.
لاستخدام Discourse كمزود SSO للمواقع في شبكتك متعددة المواقع، انتقل إلى أسفل صفحة Discourse الخاصة بالشبكة وحدد خيار تمكين عميل SSO. أضف أيضًا مفتاحًا إلى إعداد مفتاح سر SSO. احفظ خياراتك مرة أخرى.
الآن انتقل إلى موقع Discourse وانسخ المفتاح السري إلى إعداد موقع sso provider secrets في Discourse. أدخل رمز * كمجال مزود SSO. عند حفظ هذا الإعداد، يجب أن يبدو مشابهًا لهذا:
الآن حدد خيار enable sso provider في Discourse.
مع وجود هذه الإعدادات، عند الانتقال إلى تبويب WP Discourse SSO / SSO Client لأي موقع في شبكتك، يجب أن تأخذك إلى صفحة تبدو مشابهة لهذا:
لإجراء اختبار سريع، حدد خيارات إضافة رابط تسجيل الدخول ومزامنة المستخدمين الحاليين عبر البريد الإلكتروني. ثم قم بتسجيل الخروج من موقع WordPress الخاص بك. يجب أن تتمكن من تسجيل الدخول مرة أخرى بالنقر على رابط “تسجيل الدخول باستخدام Discourse” الذي سيظهر على صفحة wp-login.php الخاصة بك.
إذا لم تكن تستخدم صفحة تسجيل الدخول الافتراضية في WordPress، فحاول نسخ الاختصار [discourse_sso_client] إلى منشور في موقعك. يعرض هذا الاختصار فقط تعليمات تنسيق الصفحة للمستخدمين غير المسجلين. يمكنك أيضًا إنشاء رابط تسجيل الدخول عن طريق بناء رابط بهذا الشكل:
<a href="https://example.com/?discourse_sso=1&redirect_to=https://example.comt/">تسجيل الدخول باستخدام Discourse</a>
سيؤدي هذا إلى تسجيل دخول المستخدم إلى موقعك باستخدام Discourse ثم إعادة توجيهه إلى صفحة WordPress التي قمت بتعيينها كقيمة لمعلمة redirect_to.
بناءً على تصحيح الأخطاء الذي قمت به، يبدو أن خيار تمكين عميل SSO لم يكن مفعلًا في صفحة شبكة Discourse الخاصة بك. هل يمكنك التأكد من تفعيل هذا الخيار وإخباري إذا كنت لا تزال تواجه مشاكل معه؟
الكود الذي وجدته والذي كان يمنع عميل SSO من العمل بالنسبة لك صحيح، ولكنه شرط مكتوب بشكل سيء:
if ( empty( $this->options['sso-client-enabled'] ) || 1 !== intval( $this->options['sso-client-enabled'] ) )
يجب تبسيطه إلى if ( empty( $this->options['sso-client-enabled'] ) ). هذا هو النمط المستخدم في كل مكان آخر في الإضافة.


