أسئلة حول DiscourseConnect Provider

سأقوم بتمكين موفر DiscourseConnect ولدي بعض الأسئلة:

  1. هل لا يزال بإمكاني انتحال شخصية المستخدمين والوصول إلى جميع عناصر تحكم مسؤول المستخدم داخل Discourse بعد تمكين هذا؟

  2. ماذا يحدث لمن يوجدون بالفعل على Discourse، ولكن ليس على WP؟ هل ستتأثر حساباتهم، وما هي بيانات الاعتماد التي سيستخدمونها لتسجيل الدخول، نظرًا لأنهم غير موجودين بالفعل على WP.

  3. كيف يمكنني إضافة زر تسجيل على موقع Discourse الخاص بي يعيد توجيههم إلى Discourse بعد التسجيل في WP؟

  4. هل هناك أي طريقة يمكن للمستخدمين من خلالها التسجيل فقط على Discourse مع تمكين هذا الإعداد.

شكرا!

نعم، باستثناء الأشياء المتعلقة بإنشاء المستخدمين مثل الدعوات.

إذا كان بإمكانهم تسجيل الدخول إلى WP بنفس العنوان، أعتقد أنك ستكون بخير. وإلا، فهم غير موجودين.

زر تسجيل الدخول يأخذهم بخبث إلى موقع WP

لا.

إعجابَين (2)

ماذا كنت تقصد بهذا؟

لذا، لقد اختبرت هذا للتو. أخذت حسابًا موجودًا على Discourse ولكنه غير موجود على Wordpress وحاولت تسجيل الدخول، وأعطاني WP الأخطاء التالية:


Screenshot 2023-07-01 220024

والذي أفترض أنه منطقي من منظور WP نظرًا لأن المستخدم غير موجود فعليًا على WP.
السؤال هو: هل تمكين موفر DiscourseConnect يعني أن مستخدمي Discourse الحاليين، الذين لم يتم تسجيلهم على WP الخاص بي، لا يمكنهم تسجيل الدخول بعد الآن؟
هل هناك حل لهذا؟

عندما تنقر على زر تسجيل الدخول، يتم نقلك إلى WP.

نعم. ستحتاج إلى إنشاء هؤلاء المستخدمين على ووردبريس.

لقد وجدت هذه الاستجابة التي توسعت فيما اقترحته:

ولكن كيف يمكنني استيرادهم إلى ووردبريس دون التأثير على بيانات اعتماد تسجيل الدخول الحالية الخاصة بهم في Discourse؟
هل هناك أي طريقة للقيام بذلك دون إعادة تعيين تسجيلات دخول المستخدم أو حتى إخطارهم على الإطلاق لجعلها تبديلًا سلسًا؟

أشك في ذلك. توجد إضافة لـ Discourse تسمح بترحيل كلمات المرور من WordPress، لكنني أشك في وجود إضافة تعمل في الاتجاه الآخر. سيتعين عليك جعلهم جميعًا يعيدون تعيين كلمات المرور الخاصة بهم.

حتى تقوم بالتبديل إلى استخدام تسجيل الدخول الخاص بـ WordPress، فإن الحسابات الموجودة على WordPress لا تؤثر على Discourse.

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

لدي فكرة.

ماذا لو قمت بتمكين ووردبريس كعميل ديسكورس ثم قمت بإنشاء برنامج نصي آلي يقوم بما يلي:

  1. انتحال حساب مستخدم على ديسكورس حتى يتم تسجيل دخول الأتمتة كمستخدم

    • الانتقال إلى ووردبريس والنقر على زر “تسجيل الدخول باستخدام ديسكورس”.
  2. تكرار ذلك لجميع المستخدمين الموجودين على ديسكورس. حوالي 2000 مستخدم.
    الفكرة هي أن الخطوة رقم 2 ستجبر ووردبريس على إنشاء حساب لمستخدم ديسكورس بنفس بيانات الاعتماد. أفترض أيضًا أن زر “تسجيل الدخول باستخدام ديسكورس” سيعمل تلقائيًا دون طلب كلمة مرور عندما أكون مسجلاً الدخول كمستخدم، منتحلاً شخصيته.

بمجرد أن أفعل هذا، هل ستوجد حسابات جميع المستخدمين داخل ووردبريس، وبعد ذلك يمكنني تبديل ووردبريس إلى مزود ديسكورس؟

يبدو أن الأمر منطقي نظريًا، ولكني أود أن أسمع رأيك حول ما إذا كان هذا يمكن أن ينجح.

صحيح. إذا لم يكن المستخدم موجودًا في ووردبريس، فلا يمكنه تسجيل الدخول إلى ووردبريس.

لست بحاجة إلى انتحال أي شيء.

إذا كنت تريد أن يكون ووردبريس مصدر المصادقة الخاص بك

  • قم بإنشاء جميع المستخدمين في ووردبريس. تأكد من أن عنوان البريد الإلكتروني في ووردبريس يطابق ديسكورس
  • قم بتبديل ديسكورس لاستخدام ووردبريس كمضيف لـ DiscourseConnect

سيتعين عليك جعل الأشخاص يعيدون تعيين كلمات المرور الخاصة بهم في ووردبريس.

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

لدينا العديد من الدورات والأحداث للأعضاء المميزين التي تجري على موقعنا الإلكتروني على ووردبريس وأريد تكاملاً سلساً بين ووردبريس و ديسكورس.

ما هي سلبيات القيام بذلك؟ ولماذا تقول هذا…

حسنًا. إذن إذا كان لديك مستخدمون Discourse في WordPress، فستحتاج إلى جعل كل هؤلاء المستخدمين لديهم حساب في WordPress. إذا قاموا بإنشائه بنفس عنوان البريد الإلكتروني، فيجب ربطهم بمستخدم Discourse الخاص بهم عند تسجيل الدخول.

لا أعرف ما الذي يمكنني قوله أيضًا.

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

كما أشار جاي، فإن أفضل طريقة لتحقيق ذلك هي تكوين موقع WordPress الخاص بك ليكون مزود تسجيل الدخول الموحد (SSO) لـ Discourse. ألقِ نظرة على هذا الموضوع للحصول على تفاصيل حول كيفية إعداده: Configure single sign-on (SSO) with WP Discourse and DiscourseConnect.

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

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

أحد الأشياء التي يجب ملاحظتها هو أن سلوك تسجيل دخول المستخدمين إلى حسابات Discourse الحالية الخاصة بهم سيعمل فقط إذا تم تمييز عناوين البريد الإلكتروني على أنها “صالحة” من جانب WordPress. إذا كنت تستخدم نظام تسجيل الدخول الافتراضي في WordPress، فسيعمل هذا دون أي مشاكل. إذا كنت تستخدم صفحة تسجيل دخول مخصصة تمت إضافتها بواسطة إضافة، فمن المحتمل ألا يتم تمييز عناوين البريد الإلكتروني للمستخدمين على أنها “صالحة”. التفاصيل حول كيفية حل هذه المشكلة موجودة هنا: Configure single sign-on (SSO) with WP Discourse and DiscourseConnect. لاحظ أنه من المهم جدًا ألا تقبل عناوين البريد الإلكتروني بشكل أعمى دون التحقق منها بطريقة ما. إذا لم يتم التحقق من صحة عناوين البريد الإلكتروني، فإنك تخاطر بالاستيلاء على الحسابات الحالية.

4 إعجابات

كيف سنعرف؟

هذه هي صفحة التسجيل الخاصة بي: Log In ‹ Project Van Life — WordPress

تم تصميمها بشكل مختلف بسبب السمة الخاصة بي ولكني أعلم أنه ليس لدينا مكون إضافي مخصص لتسجيل الدخول.

يبدو أنك تستخدم نظام تسجيل WordPress الافتراضي. أفترض ذلك لأن صفحة تسجيل الدخول الخاصة بك موجودة في wp-login.php. هذا يعني أن إضافة WP Discourse ستضع علامة على عناوين البريد الإلكتروني للمستخدمين على أنها مُحققة.

3 إعجابات

سؤال آخر حول هذا الموضوع.

هل لا يزال Discourse يرسل رسائل بريد إلكتروني عند إعداد موفر Discourse Connect، وهل لا يزال Discourse يرسل إشعارات البريد الإلكتروني لمستخدمي WP؟

كيف يعمل هذا إذا كان شخص ما مستخدمًا لـ WP ولكنه لم يصل أبدًا إلى المنتدى، مقابل شخص هو مستخدم لـ WP ويصل إلى المنتدى.

نعم، سيظل Discourse يرسل لهم رسائل البريد الإلكتروني. لا تتأثر إشعارات البريد الإلكتروني المرسلة من Discourse باستخدام Discourse Connect كنظام مصادقة.

لا يعتبر المستخدم الموجود على موقع WordPress الخاص بك والذي لم يصل إلى Discourse مطلقًا مستخدمًا على Discourse. لن يتلقوا أي إشعارات بريد إلكتروني من Discourse. الاستثناء الوحيد لذلك هو إذا قمت بتمكين إعداد WP Discourse “إنشاء أو مزامنة مستخدمي Discourse عند تسجيل الدخول”:

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

3 إعجابات

لذلك، لقد اختبرت هذا للتو ويبدو أنه ليس هو الحال. كيف يمكنني التأكد من التحقق من رسائل البريد الإلكتروني للمستخدمين الآن دون الحاجة إلى القيام بذلك يدويًا؟

أيضًا، كيف يمكن للمستخدمين الجدد التسجيل والحصول على بريدهم الإلكتروني الذي تم التحقق منه؟ حاليًا، نرسلهم إلى wp-login.php الذي لا يحتوي على خيار للتسجيل، فقط لتسجيل الدخول.

يمكنني إنشاء زر جديد في المنتدى يقول “تسجيل” ويرسلهم إلى صفحة تسجيل مخصصة داخل WP، ولكن بعد ذلك تكون هذه مشكلة:

بالإضافة إلى ذلك، بعد التسجيل، أرغب في إعادة توجيههم مرة أخرى إلى المنتدى والتأكد من تسجيل دخولهم.

أنا أستكشف أيضًا نهجًا آخر أعتقد أنه سيسهل الأمور من منظور المستخدم وأود أن أسمع أفكارك.

ماذا لو قمنا بتصدير جميع مستخدمي Discourse يدويًا واستيرادهم إلى Wordpress. هذه العملية ستؤدي إلى:

  1. إنشاء حساب Wordpress لكل مستخدم موجود على Discourse

  2. ربط هذا الحساب بملفهم الشخصي في المنتدى

  3. وضع علامة على عنوان بريدهم الإلكتروني كـ “تم التحقق منه” في WP. نظرًا لأنهم مستخدمون بالفعل في Discourse، يمكننا افتراض أنهم تم التحقق منهم.

  4. إرسال بريد إلكتروني إليهم يطلب منهم إعادة تعيين كلمة مرور المنتدى الخاصة بهم (لأن الخطوة 1 ستعيد تعيينها)

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

هذه العملية لا تحل الأسئلة/المشكلات التي أبرزتها في الرد أعلاه.

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

بافتراض عدم التحقق من عناوين البريد الإلكتروني، توجد هنا تعليمات حول كيفية وضع علامة “تم التحقق” على عناوين البريد الإلكتروني عند قيام المستخدم بإنشاء حساب: Configure single sign-on (SSO) with WP Discourse and DiscourseConnect. سيكون هذا آمنًا إذا كان موقعك يرسل للمستخدمين بريدًا إلكترونيًا للتأكيد يحتوي على رابط يحتاجون إلى النقر عليه قبل أن يتمكنوا من الوصول إلى الموقع. إذا لم يكن موقع ووردبريس الخاص بك يقوم بذلك، يمكنك أيضًا إضافة بعض التعليمات البرمجية لوضع علامة “تم التحقق” على عناوين البريد الإلكتروني للمستخدمين بعد تسجيلهم في إحدى دوراتك. قد يتطلب إعداد ذلك بعض المساعدة من مطور.

أرى صفحتين منفصلتين لتسجيل الدخول على موقعك:

أسهل شيء يمكن القيام به هو حل هذه المشكلة بحيث يكون هناك صفحة تسجيل دخول واحدة فقط على الموقع، وتحتوي الصفحة على رابط صالح لصفحة تسجيل الموقع. أعتقد أنه يمكن تحقيق ذلك من خلال صفحة إعدادات المكون الإضافي الذي يضيف نموذج تسجيل الدخول. لاحظ أنه إذا اخترت استخدام صفحة تسجيل الدخول على https://projectvanlife.com/login/ ، فستحتاج إلى إضافة /login إلى “مسار صفحة تسجيل الدخول الخاصة بك” في إعدادات WP Discourse:

أعتقد أن هذا قد يربك المستخدمين. نهج أسهل هو مجرد إضافة رابط إلى منتدى Discourse الخاص بك تم إنشاؤه بحيث يتم تسجيل دخول المستخدمين تلقائيًا إلى Discourse عند النقر على الرابط. إليك تفاصيل حول كيفية إنشاء الرابط: Create a DiscourseConnect login link. بمجرد تمكين DiscourseConnect على موقعك، يجب عليك أيضًا هيكلة هذا الرابط بهذه الطريقة:

هذا ممكن. بعض التفاصيل حول كيفية القيام بذلك هنا: How to import Discourse users to WordPress? - #2 by simon. المشكلة الرئيسية التي أراها هي أنك ستخلق لنفسك عملاً إضافيًا دون تسهيل الأمور كثيرًا لمستخدميك. لو كنت مكانك، لكانت مخاوفي هي أن المستخدمين قد لا يتلقون البريد الإلكتروني أو يقرؤونه، وقد لا يسعد بعض المستخدمين بإنشاء حساب جديد نيابة عنهم. هناك أيضًا مشكلة أمنية محتملة ما لم يكن لدى المكون الإضافي للمستورد الذي تستخدمه طريقة لإجبار المستخدمين على تغيير كلمات المرور الخاصة بهم بعد تسجيل الدخول لأول مرة.

سيكون من الأسهل بكثير مجرد إنشاء موضوع لافتة في فئة “الموظفين” الخاصة بك مع تفاصيل حول التغيير. يمكن تحسين الصياغة في لقطة الشاشة قليلاً:

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

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

إليك الرابط الكامل الذي استخدمته:

<a>إنشاء حساب على (اسم موقعك)</a>

سيؤدي النقر عليه إلى تسجيل حساب جديد على ووردبريس وإعادة توجيه المستخدمين إلى صفحة ملفهم الشخصي في ووردبريس حيث يمكنهم تعيين كلمة مرور. لاحظ أنه في حالتك ستحتاج إلى استبدال كلا استخدامي http://wp-discourse.test في الرابط بـ https://projectvanlife.com/

4 إعجابات

@simon شكراً جزيلاً لك على ردك المفصل، كان كل هذا مفيداً للغاية!

هذه فكرة رائعة!

ماذا لو قمنا بانتحال شخصية كل مستخدم وقمنا بذلك نيابة عنهم؟ هل سيؤدي ذلك إلى حدوث أي مشاكل؟

هل هذا النهج يحافظ أيضًا على نفس كلمة مرور تسجيل الدخول الخاصة بهم بعد أن ننتقل إلى WordPress كموفر Discourse Connect؟

3 إعجابات

لا أعتقد أن ذلك سيسبب أي مشاكل.

لن يؤدي تعيين WordPress كموفر لـ DIscourseConnect إلى تغيير كلمة مرور WordPress الخاصة بالمستخدم.

3 إعجابات