إضافة روابط إلى Discourse تسمح للمستخدمين بالمصادقة عبر SSO أو الوصول إلى المجموعات الخاصة مباشرة إذا كانوا قد سجلوا الدخول بالفعل

لدي موقع WordPress يعمل كمزود SSO لمنتدى Discourse باستخدام إضافة WPDiscourse، المنتدى عام، ولكنه يحتوي على بعض المجموعات الخاصة.

عندما أرغب في إضافة أزرار تنقل المستخدمين من موقع WordPress الخاص بي إلى مجموعة خاصة في Discourse، أستخدم عنوان URL الخاص بـ SSO كما هو مذكور هنا، حتى لا يصل المستخدمون إلى صفحة “عذرًا! هذه الصفحة غير موجودة أو خاصة.”

ولكن عندما يقوم المستخدمون بالمصادقة بالفعل عبر SSO في Discourse، ويعودون ويضغطون على نفس الأزرار، سيصلون إلى صفحة تسجيل الدخول مرة أخرى، حتى لو قاموا بتحديد مربع “تذكرني” أثناء تسجيل الدخول. من الناحية المثالية، سيكونون قادرين على التنقل إلى المجموعات الخاصة بحرية بمجرد المصادقة في Discourse SSO.

هل هناك طريقة أفضل لإعداد هذا؟
فكرت في إضافة رمز إلى صفحة تسجيل الدخول في WordPress والتحقق مما إذا كان المستخدم قد قام بتسجيل الدخول بالفعل في Discourse، وإذا كان الأمر كذلك، إعادة توجيهه إلى الصفحة الموجودة في وسيطة “return_path” في عنوان URL. هل سيكون هذا حلاً بديلاً؟ إذا كان الأمر كذلك، ما هي الوظائف أو استدعاءات API التي يمكنني استخدامها لتحقيق ذلك؟

شكرا لك!

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

إذا كان المستخدمون مسجلين الدخول بالفعل في موقع ووردبريس الخاص بك، فلا ينبغي أن يحدث هذا. هل يمكنك توضيح ما إذا كان المستخدمون الذين يحدث هذا لهم مسجلين الدخول إلى ووردبريس؟ إذا كانوا مسجلين الدخول، فمن المتوقع أن يتم إعادة توجيههم بصمت إلى عنوان URL الخاص بـ Discourse الذي قمت بتعيينه في الوسيط return_path.

3 إعجابات

أهلاً @rodrigo.braga :slight_smile:

أنا أيضاً في حيرة من أمري. إذا كان بإمكانك تأكيد ما يلي:

الإعداد

تم إعداد ووردبريس كمزود لـ DiscourseConnect لـ Discourse باتباع التعليمات هنا

السيناريو 1

  1. يوجد مستخدم على موقع ووردبريس الخاص بك وهو غير مسجل الدخول إلى ووردبريس
  2. ينقر المستخدم على رابط على ووردبريس بالتنسيق https://discourse.example.com/session/sso?return_path=/g/private_group
  3. يُطلب من المستخدم تسجيل الدخول إلى ووردبريس
  4. يسجل المستخدم الدخول إلى ووردبريس
  5. يُعاد توجيه المستخدم إلى https://discourse.example.com/g/private_group
  6. يرى المستخدم private_group لأنه مسجل الدخول الآن إلى Discourse عبر DiscourseConnect وهو عضو في private_group.

هل هذا هو الوضع الحالي؟

السيناريو 2

  1. يوجد مستخدم على موقع ووردبريس الخاص بك وهو مسجل الدخول إلى ووردبريس
  2. ينقر المستخدم على رابط على ووردبريس بالتنسيق https://discourse.example.com/session/sso?return_path=/g/private_group
  3. يُطلب من المستخدم تسجيل الدخول إلى ووردبريس

هل هذا هو الوضع الحالي؟

3 إعجابات

شكرًا سيمون، نعم، المستخدم مسجل الدخول في ووردبريس.

الغريب في السيناريو الخاص بي هو أن لدي موقع ووردبريس رئيسي واحد (WPSite1) وهو مزود DiscourseConnect لـ Discourse باستخدام WP Discourse،

ثم لدي موقع ووردبريس ثانٍ (WPSite2) يقوم بمزامنة قاعدة بيانات المستخدمين مع WPSite1 باستخدام إضافة WP Remote User Synch.

لا أعرف لماذا قد يتعارض ذلك مع السلوك المتوقع الذي ذكرته، لأنه عندما أسجل الدخول في WPSite2، ثم أنتقل إلى WPSite1، أكون مسجل الدخول بالفعل في WPSite1 أيضًا.

ولكن ما يحدث هو أنه حتى بعد تسجيل الدخول في WPSite1، وهو مزود DiscourseConnect، وانقر على عنوان URL مثل https://discourse.example.com/session/sso?return_path=/g/private_group، فإنه يأخذني إلى نموذج تسجيل الدخول SSO الخاص بووردبريس.

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

شكرا لك يا أنجوس،

السيناريو الثاني هو الحالة.
سأقوم بمراجعة التعليمات ولكن أعتقد أن كل شيء تم إعداده بشكل صحيح نظرًا لأن تسجيل الدخول عبر SSO يعمل، والمشكلة هي أن صفحة تسجيل الدخول لا تتعرف على أن المستخدم مصادق عليه بالفعل.

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

مرحباً @simon و @angus، شكراً مرة أخرى، لقد وجدت ما كان خاطئاً.

عند مراجعة إعدادات DiscourseConnect، لاحظت أن عنوان URL الخاص بـ DiscourseConnect كان مضبوطاً على https://mydomain.org، ونظرت في التوصيات الخاصة بإضافة Discourse WP، وكانت تقول باستخدام https://www.mydomain.org… عندما قمت بالتحديث باستخدام www، بدأ العمل كما هو متوقع.

شكراً لكم.

إعجابَين (2)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.