مشاكل إعادة توجيه SSO

أنا أقوم بدمج Discourse مع Wordpress عبر إضافة WP Discourse واستخدام Wordpress كموفر لـ Discourse Connect، ولكني أواجه مشكلة حيث يؤدي قيام مستخدم غير مصادق عليه بزيارة مثيل Discourse والنقر على أي زر يتطلب تسجيل الدخول إلى جعله عالقًا في حلقة إعادة توجيه لا نهائية.

السلوك المطلوب هو: ينقر المستخدم على زر تسجيل الدخول إلى Discourse → يتم إعادة توجيه المستخدم إلى صفحة تسجيل الدخول إلى Wordpress → يقوم المستخدم بالمصادقة ويتم إعادة توجيهه مرة أخرى إلى صفحة Discourse التي كان عليها من قبل. حاليًا لا توجد مشاكل إذا كان المستخدم مصادقًا عليه بالفعل ويزور مثيل Discourse بعد المصادقة. يظهر هذا الخطأ عندما يزور مستخدم غير مصادق عليه مثيل Discourse أولاً.

السلوك الحالي هو: ينقر المستخدم على زر تسجيل الدخول إلى Discourse يتم توجيه المستخدم إلى https://[discourse-instance]/session/sso?return_path=%2Ft%2F[discourse page user was on before]%2F16 → يتم توجيه المستخدم إلى https://[wordpress-site]/?sso=[SSO token]%3D%3D&sig=[Signature token] → يتم توجيه المستخدم إلى https://[wordpress-site]/?sso=[SSO token]%3D%3D&sig=[Signature token]&redirect_to=%2F%3Fsso%[SSO token]%253D%253D%26sig%3D[Signature token] → وتستمر الدورة بشكل متكرر حتى يعرض المتصفح خطأ “الكثير من عمليات إعادة التوجيه”

لم أتمكن من العثور على موضوع يتضمن حلاً لهذه المشكلة، وأقرب موضوع هو

ولكن لدينا SSL ممكّن في كل مكان وتحدث هذه المشكلة عبر جميع المتصفحات. أي اقتراحات حول كيفية إصلاح هذه المشكلة؟

تم شحن Chrome 97 مع خلل يتعلق بالتعامل مع ملفات تعريف الارتباط أثناء عمليات إعادة التوجيه، ومن المعروف أنه يعطل DiscourseConnect في بعض الظروف. بينما ننتظر Google لطرح إصلاح، أضفنا حلاً بديلاً لـ Discourse. يجب أن يؤدي ترقية موقع Discourse الخاص بك إلى أحدث إصدار إلى حل المشكلة. هل يمكنك تجربة ذلك وإخبارنا إذا نجح؟

(تمت إضافة الحل البديل في هذا الالتزام)

3 إعجابات

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

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

مرحباً @dbwhite، هل يمكنك من فضلك

  1. تمكين “سجلات DiscourseConnect المطولة” في إعدادات “DiscourseConnect” الخاصة بـ WP Discourse
  2. إعادة إنشاء المشكلة
  3. الانتقال إلى “السجلات” في WP Discourse و"تنزيلها"

ثم أرسل لي السجلات عبر رسالة خاصة وسألقي نظرة فاحصة على ما يحدث. لاحظ أن السجلات لا تحتوي على أي معلومات تعريف شخصية أو أسرار.

إعجابَين (2)

@angus، @dbwhite، قد يكون سبب المشكلة المحتمل هو إذا كان موقع ووردبريس يستخدم Woocommerce. يضيف Woocommerce إعادة توجيه تسجيل الدخول التي يمكن أن تسبب مشاكل مع DiscourseConnect. يمكن تجاوز عمليات إعادة التوجيه هذه إما عن طريق تثبيت وتفعيل https://github.com/scossar/wp-discourse-woocommerce-support، أو عن طريق إضافة مقتطفات التعليمات البرمجية المتوفرة في ملف README الخاص بهذا المكون الإضافي إلى سمة الموقع.

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

إذا كان هذا هو سبب المشكلة، أتساءل عما إذا كان ينبغي علينا النظر في إضافة دعم Woocommerce مباشرة إلى المكون الإضافي WP Discourse.

4 إعجابات

سيكون ذلك مفيدًا للغاية.

أنا لا أواجه المشكلة بالضبط التي وصفها OP، ولكني أواجه صعوبة في إعادة توجيه مستخدمينا إلى المكان الذي كانوا فيه، في منتديات Discourse، بعد تسجيل الدخول :disappointed_face:

هل يؤدي تثبيت وتفعيل إضافة WP Discourse WooCommerce Support إلى حل المشكلة بالنسبة لك؟

أردت فقط نشر تحديث هنا، اتضح أن أحد المكونات الإضافية التي كنا نستخدمها كان يتداخل مع القيمة المرجعة لدالة wp_login_url() في ووردبريس. بمجرد إزالة هذا المكون الإضافي، سار كل شيء كما هو متوقع!

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

تم تقسيم مشاركة إلى موضوع جديد: خطأ Rails عند استخدام DiscourseConnect و Wordpress