Memberstack + Webflow + Discourse OpenID Connect

مرحباً - لقد رأيت بعض المشاركات القديمة حول هذا الموضوع ولكن لا يوجد شيء حالي. لقد طرحت هذا السؤال في منتدى Memberstack أيضًا…

أنا أعمل على مشروع لبناء مجتمع جديد خاص/مغلق وأنا مهتم باستخدام Memberstack + Webflow و SSO لـ Discourse كمنصة مجتمعية. لدي انطباع بأن هذا مدعوم الآن مع تكامل SSO مخصص. أحتاج تحديدًا إلى التأكد من أنه يمكنني المصادقة على المستخدمين في صفحات Webflow ثم الانتقال بسلاسة إلى موقع مجتمع Discourse. لقد رأيت تعليقات تشير إلى أنه ممكن ورأيت وثيقة Memberstack SSO، ولكنني أبحث عما إذا كانت هناك أي معلومات أكثر تحديدًا تتعلق بتكامل Discourse. هل يستخدم أي شخص إعدادًا كهذا باستخدام Memberstack لإدارة SSO لـ Discourse؟ أحتاج إلى اختباره في أقرب وقت ممكن. شكراً.

3 إعجابات

نعم، هذا مدعوم الآن! يسمح لك Memberstack الآن باستخدام Memberstack كموفر OpenID Connect: https://docs.memberstack.com/hc/en-us/articles/8161104982043-Custom-SSO-Integrations. سيسمح هذا للمستخدمين بتسجيل الدخول إلى موقع Discourse الخاص بك من خلال Memberstack. إذا قمت بتكوين موقع Discourse الخاص بك بحيث يكون OpenID Connect هو خيار تسجيل الدخول الوحيد المتاح على الموقع، فسيكون تسجيل الدخول إلى Discourse من صفحات Webflow الخاصة بك عملية سلسة لمستخدميك. (ملاحظة: لا تقم بإزالة خيار تسجيل الدخول إلى موقع Discourse الخاص بك باسم المستخدم/كلمة المرور حتى تتأكد من أن تسجيلات الدخول عبر OpenID Connect تعمل.)

لكي يعمل هذا، ستحتاج إلى تثبيت إضافة Discourse OpenID Connect على موقع Discourse الخاص بك. التفاصيل حول تكوين هذه الإضافة موجودة هنا: Discourse OpenID Connect (OIDC).

أوصي بمشاهدة الفيديو في وثائق Memberstack التي ربطتها قبل محاولة تكوين تسجيلات الدخول عبر OpenID Connect لموقع Discourse الخاص بك. يأخذك خلال عملية تكوين تسجيلات الدخول عبر OpenID Connect من Memberstack للعمل مع موقع الاختبار على https://openidconnect.net/. بعد الانتهاء من ذلك، يجب أن تكون عملية إعداد المصادقة عبر OpenID Connect لـ Discourse عملية مباشرة.

إذا كانت هناك أي مواقع Discourse موجودة قامت بتكوين المصادقة عبر OpenID Connect مع Memberstack، فسيكون من الرائع سماع آرائهم.

5 إعجابات

@simon شكراً جزيلاً على المدخلات وتأكيد أن هذا يجب أن يعمل! كنت آمل في الحصول على هذا النوع من التحقق قبل أن أتعمق أكثر في المسار باستخدام Webflow. أنا أستخدم هذا لتشغيل برنامج تجريبي وأريد اختبار Memberstack + Webflow + Discourse خلال البرنامج التجريبي. لذا هذا فقط لإثبات الحد الأدنى من المنتج القابل للتطبيق ومن الممكن جداً أن أنتقل إلى شيء مختلف تماماً على المدى الطويل (باستثناء Discourse… بالتأكيد سأحتفظ به!).

نظراً لأن دعم Memberstack OpenID هذا جديد نسبياً، سأكون سعيداً بسماع ما إذا كان هناك أي شخص هنا يستخدم هذا النوع من الإعداد في الإنتاج بالفعل.

إعجابَين (2)

مرحباً! هل تمكنت من تطبيق حل فعال لهذا؟ يتطلب OpenID حسابًا تجاريًا على Discourse وهو بسعر 300 دولار شهريًا! كنت آمل في استخدام DiscourseConnect SSO لتحقيق ما ذكرته مع Webflow و Memberstack!

على حد علمي، تم تطبيق حل فعال باستخدام OpenID Connect.

لا أعتقد أن Webflow يسمح لك بإضافة كود من جانب الخادم إلى موقعك. إذا كان هذا صحيحًا، فلن يكون من الممكن استخدام DiscourseConnect مع Webflow.

@JammyDodger، يمكن إعادة تسمية هذا الموضوع إلى “Memberstack + Webflow + Discourse OpenID Connect”.

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

مرحباً بالجميع! لقد تمكنت من تفعيل تسجيل الدخول الموحد (SSO) لمنتدى Discourse عبر تسجيل الدخول الخاص بي في Memberstack! بمجرد تسجيل الدخول عبر OpenID إلى منتدى Discourse الخاص بي، تظهر لي نافذة منبثقة لـ “إنشاء حسابي” على المنتدى. هل هذا ما يفترض أن يحدث أم يجب أن يتم تسجيل دخولي مباشرة؟ لقد أرفقت لقطة شاشة للنافذة المنبثقة التي تظهر لي بعد تسجيل الدخول بمعلوماتي في Memberstack. شكراً مقدماً!

هذا رائع!

من لقطة الشاشة الخاصة بك، لا يبدو أن عنوان بريدك الإلكتروني يتم ملؤه في نموذج تسجيل الدخول. لقد مر وقت طويل منذ أن شاهدت فيديو Memberstack (https://docs.memberstack.com/hc/en-us/articles/8161104982043-Custom-SSO-Integrations)، ولكني أعتقد أن إعداد موقع Discourse openid_connect_authorize_scope يحتاج إلى تعيينه إلى openid email profile بحيث يتم تضمين كل من عنوان البريد الإلكتروني واسم المستخدم في الحمولة التي يتم إرسالها إلى Discourse.

ليس لدي الإعدادات اللازمة لاختبار هذا الآن، ولكن قد تحتاج إلى تمكين هذه الإعدادات لتخطي النافذة المنبثقة لإنشاء الحساب (وإلا، يجب أن تظل الحقول مملوءة، ولكن سيتعين على المستخدمين النقر فوق زر “إنشاء حسابك”):

  • auth skip create confirm (بالتأكيد يحتاج إلى تمكين لتخطي النافذة المنبثقة لإنشاء الحساب)
  • auth overrides email
  • auth overrides username
  • auth overrides name

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

شكراً جزيلاً لك يا سيمون! إضافة تلك العناصر الإضافية في “openid_connect_authorize_scope” أصلحت الأمر، وتمكين “auth skip create confirm” يتجاوز النافذة المنبثقة وينتقل مباشرة إلى الصفحة الرئيسية للمنتدى! لقد قمت بتمكين “openid connect overrides email” - ماذا يفعل هذا؟

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

شكراً جزيلاً على كل مساعدتك، لقد كانت لا تقدر بثمن!

حسنًا، بالنسبة لاتصال OpenID، يُطلق على الإعداد اسم openid connect overrides email، وليس auth overrides email. عند تمكينه، في كل مرة يقوم فيها المستخدم بتسجيل الدخول إلى Discourse عبر OpenID Connect، سيتم تعيين البريد الإلكتروني الخاص بـ Discourse إلى قيمة عنوان البريد الإلكتروني الذي يستخدمه على موقع مزود المصادقة OpenID Connect. هذا يعني أنه إذا قام المستخدم بتغيير عنوان بريده الإلكتروني على Discourse، فسيتم إعادة تعيينه تلقائيًا إلى قيمة عنوان البريد الإلكتروني الذي يستخدمه على Memberstack.

يمكنك في الواقع تعطيل إعداد الموقع email editable لمنع أي مشاكل مع عدم مزامنة رسائل البريد الإلكتروني مع مزود المصادقة. لذا، إذا قمت بتعطيل email editable وتمكين openid connect overrides email، فلن يتمكن المستخدمون من تغيير عنوان بريدهم الإلكتروني إلا عن طريق تغييره على Memberstack، ثم تسجيل الدخول إلى Discourse عبر Memberstack.

لا أعتقد ذلك. بعد أن ينقر شخص ما على زر “تسجيل” في Discourse، سيقوم Discourse بإعادة توجيهه إلى authorization_endpoint الذي يوفره Memberstack. ربما يسمح Memberstack بذلك ليكون قابلاً للتكوين، ولكن ستحتاج إلى الاتصال بهم لمعرفة ذلك.

نهج آخر محتمل هو أنه قد يكون من الممكن إضافة رابط إلى الصفحة المخصصة في رأس Discourse. ربما باستخدام مكون السمة هذا: Custom Header Links. من الناحية المثالية، ستتمكن من إخفاء الرابط من المستخدمين المسجلين باستخدام بعض CSS.

شكرا سيمون! لقد قمت بتمكين تجاوزات openid للبريد الإلكتروني وتعطيل إمكانية تحرير البريد الإلكتروني، وأقدر لك إرشادي خلال ذلك!

هذه فكرة جيدة بخصوص زر التسجيل، سأبحث في القيام بذلك!

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

@ryanshah112 تمكنت من جعل هذا يعمل كإثبات مفهوم (بمساعدة كبيرة من @simon) ولكني قررت عدم استخدام إعداد MS والآن أوقفت المشروع لبضعة أشهر. أحتاج إلى استئنافه. وجدت أن تكامل MS openID لم يعمل بشكل جيد. أولاً، هناك مشكلة تسجيل الدخول المزدوج التي جعلت تدفق الإعداد أقل من مثالي - فهو لا يطلب فقط تفويض التطبيق، بل يجعل المستخدم يسجل الدخول. أردت إعداد تدفق إعداد مخصص حيث يسجل المستخدم الدخول على موقع webflow ويكون قادرًا على الانتقال إلى Discourse بطريقة سلسة. لقد نجحت في ذلك باستخدام النماذج، zapier، airtable عن طريق إنشاء مستخدم Discourse عبر API. كان ذلك رائعًا كإثبات مفهوم ولكنه ليس شيئًا أردت استخدامه كنظام إنتاج. عندما أبدأ مرة أخرى، ربما لن أعتمد على MS كمزود هوية، بل سأبني ذلك باستخدام شيء مثل Wized مع Supabase أو شيء من هذا القبيل. أعتقد أن نظام MS + Discourse سيعمل بشكل جيد إذا كنت راضيًا عن بعض القيود.

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

هل يمكنك إخباري بعنوان URL الخاص بالاتصال بالخطاب؟ يوجد نقطة نهاية لرمز المصادقة، ونقطة نهاية للرمز، ونقطة نهاية لمفاتيح الرمز.

مرحباً ريفر، إذا لم تكن متأكداً بشأن OpenID Connect، أقترح عليك مشاهدة فيديو Memberstack OpenID Connect واتباع البرنامج التعليمي: https://docs.memberstack.com/hc/en-us/articles/8161104982043-Custom-SSO-Integrations. هذا ما فعلته.

لتكوين OpenID Connect على جانب Discourse، يمكنك العثور على المعلومات ذات الصلة هنا: Discourse OpenID Connect (OIDC). تفصيل خاص بـ Memberstack غير مذكور في هذا الموضوع هو أنني أعتقد أن إعداد موقع Discourse openid_connect_authorize_scope يجب تعيينه إلى:

  • openid email profile

(بافتراض أن هذا صحيح، يجب إضافته إلى قسم “ملاحظات خاصة بالمزود” في أسفل موضوع Discourse OpenID Connect.)

هذا سبب للارتباك الذي لا ينتهي هنا، لكن DiscourseConnect يشير إلى بروتوكول مصادقة منفصل تماماً. المعلومات التي تحتاجها موجودة في موضوع Discourse OpenID connect الذي ربطته.

مرحباً سيمون،
شكراً لك على توضيح الأمور لي. هل هناك طريقة لربط Memberstack بـ DiscourseConnect؟

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

قد يكون من المفيد سؤال Memberstack عن ذلك. يمكنهم تنفيذ DiscourseConnect لجميع مواقعهم بطريقة مماثلة لما فعله Memberful: Integrate Discourse with Memberful - Memberful. أنا متاح للعمل الاستشاري إذا كانوا يريدون بعض المساعدة في ذلك :slight_smile:

أهلاً ريفر! أتفق مع سيمون على أنه لا يمكن استخدام DiscourseConnect وبدلاً من ذلك ستحتاج إلى استخدام OpenID. إذا كنت بحاجة إلى أي مساعدة في تكوين Memberstack x Discourse عبر OpenID، فسأكون سعيدًا بالمساعدة حيث تمكنت من حل هذه المشكلة بمساعدة سيمون! ستحتاج إلى خطة “Business” إذا كنت تستخدم استضافة Discourse.

@ryanshah112 و @river - للعلم - عندما بدأت هذا الموضوع كان لدي متطلب صارم لاستخدام Webflow. كان Memberstack هو الخيار الوحيد المتاح تقريبًا لتسجيل الدخول الموحد عبر OpenID ولم ألقِ نظرة عليه منذ حوالي 6 أشهر، لذا قد تكون بعض الأشياء قد تحسنت هناك. ولكن إذا كنت على استعداد للنظر في Wordpress، فهناك الكثير من الفوائد مع DiscourseConnect.

ريان - بدأت بخطة الأعمال لاختبارها ولكنني تحولت إلى الاستضافة الذاتية بعد شهرين لأنني لم أكن بحاجة حقًا إلى حزم / ميزات على مستوى “الأعمال” لـ POC الخاص بي بخلاف OpenID. اعتمادًا على ما تحتاجه، قد ترغب في التفكير في ذلك وأوصي بـ @pfaffman إذا كنت بحاجة إلى مساعدة في إعداد ذلك. سهل للغاية.

إعجابَين (2)