يتيح لك إضافة WP Discourse إعداد DiscourseConnect في WordPress بحيث يمكن للمستخدمين استخدام حساب WordPress الخاص بهم لتسجيل الدخول إلى Discourse، أو استخدام حساب Discourse الخاص بهم لتسجيل الدخول إلى WordPress. قبل أن تتمكن من إعداد DiscourseConnect، يجب عليك أولاً تثبيت إضافة WP Discourse على WordPress وربطها بموقع Discourse الخاص بك. إذا كنت مستعدًا للبدء، ابدأ بمشاهدة هذا الفيديو القصير، أو اتبع التعليمات أدناه.
الخطوة التالية
بمجرد إعداد DiscourseConnect، قد ترغب في الاطلاع على المواضيع التالية:
التعليمات
إعداد مفتاح سري
سواء كنت تقوم بإعداد WP Discourse كمزود DiscourseConnect أو كعميل، فأنت بحاجة إلى تعيين مفتاح سري. اذهب إلى علامة التبويب “DiscourseConnect Secret Key” وأدخل نصًا (يُسمح بالأرقام والحروف والرموز)، طوله 10 أحرف على الأقل. اتبع نفس القواعد المستخدمة لإنشاء كلمة مرور قوية. تأكد من حفظه عند الانتهاء.
ثم، افتح إعدادات موقع Discourse (في لوحة الإدارة)، وابحث عن “discourse connect”. إحدى الإعدادات القريبة من الأعلى ستكون discourse connect secret. الصق المفتاح السري الذي قمت بتعيينه في WP Discourse هناك، ثم انقر فوق علامة الصح الخضراء.
تسجيل الدخول إلى Discourse باستخدام WordPress (مزود DiscourseConnect)
تأكد من أن WP Discourse متصل بموقع Discourse الخاص بك وأن المفتاح السري مضبوط (
) قبل اتباع هذه التعليمات
للسماح للمستخدمين بتسجيل الدخول إلى Discourse باستخدام تفاصيل حساب WordPress الخاص بهم، يجب عليك إعداد WP Discourse كمزود DiscourseConnect. اذهب إلى علامة التبويب DiscourseConnect Provider في إعدادات WP Discourse، وحدد خانة الاختيار Enable DiscourseConnect Provider ثم احفظ إعداداتك.
بعد ذلك، اذهب إلى إعدادات موقع Discourse وأدخل “discourse connect” في مربع البحث لعرض جميع إعدادات DiscourseConnect الخاصة بك. أولاً، اضبط discourse connect url على عنوان URL لموقع WordPress الخاص بنا. الخطوة الأخيرة هي تحديد enable discourse connect. تأكد من استعدادك قبل تحديد هذا الخيار، لأنه بمجرد تفعيله، لن يتمكن المستخدمون من تسجيل الدخول إلى Discourse إلا باستخدام WordPress.
بمجرد تفعيل discourse connect في Discourse، للتأكد من أن الإعداد صحيح، افتح نافذة تصفح خاصة (Incognito) في متصفحك. احتفظ بنافذة المتصفح العادية (غير الخاصة) مسجلة الدخول بحساب مسؤول (فقط في حال حدوث خطأ ما وتحتاج إلى إعادة تعيين الإعدادات). في النافذة الخاصة، ستلاحظ أن زر «التسجيل» في Discourse لم يعد يظهر. انقر فوق زر «تسجيل الدخول». يجب أن ترى شاشة تسجيل دخول WordPress. أدخل بيانات اعتماد WordPress الخاصة بك لتسجيل الدخول. بعد ذلك، يجب أن يتم إعادة توجيهك إلى Discourse وتكون مسجل الدخول.
إذا حدث خطأ ما، أو لاحظت أن شيئًا ما ليس على ما يرام، ارجع إلى نافذة المتصفح العادية وقم بتعطيل enable discourse connect للسماح للمستخدمين بتسجيل الدخول إلى Discourse بشكل طبيعي. إذا لم تعد مسجل الدخول إلى حسابك الإداري في نافذة المتصفح العادية لسبب ما، راجع قسم «تعطيل DiscourseConnect عبر وحدة تحكم Discourse» في استكشاف الأخطاء وإصلاحها أدناه لاستعادة الوصول إلى موقع Discourse الخاص بك.
التحقق من البريد الإلكتروني
يتوقع Discourse أن تكون جميع عناوين البريد الإلكتروني للمستخدمين قد تم التحقق منها، بينما لا يفرض WordPress على المستخدمين التحقق من عناوين بريدهم الإلكتروني. في إعداد WordPress الافتراضي، من السهل نسبيًا التحقق من عنوان بريد المستخدم أثناء عملية التسجيل، ولكن إذا كان الموقع يستخدم إضافة تنشئ نموذج تسجيل من الواجهة الأمامية - على سبيل المثال، نموذج التسجيل الذي يمكن إضافته مع WooCommerce - فإن إضافة WP Discourse لا تستطيع التحقق من بريد المستخدم.
إذا لم يتم التحقق من عناوين البريد الإلكتروني للمستخدمين في WordPress، قبل أن يتمكن مستخدم WordPress من تسجيل الدخول إلى المنتدى، سيحتاج إلى الرد على إشعار التحقق من البريد الإلكتروني الذي يرسله Discourse. تحتوي الإضافة على بعض الفلاتر التي يمكن استخدامها لتجاوز هذا السلوك. راجع الكود، بدءًا من هنا، للحصول على التفاصيل.
إزالة علامة require_activation
إذا كنت متأكدًا من أن WordPress يقوم بمصادقة عناوين البريد الإلكتروني، فيمكنك إخبار Discourse بأنه لا يحتاج إلى ذلك. لإزالة علامة require_activation تمامًا، أضف شيئًا مثل هذا إلى موقع WordPress الخاص بك (على سبيل المثال، في ملف functions.php الخاص بقالبك):
// استبدل 'my_prefix' بادئة موقعك.
add_filter( 'discourse_email_verification', 'my_prefix_discourse_email_verification' );
function my_prefix_discourse_email_verification( $require_activation ) {
return false;
}
لإزالة علامة require_activation لمستخدمين محددين، استخدم شيئًا مثل هذا:
// استبدل 'my_prefix' بادئة موقعك.
add_filter( 'discourse_email_verification', 'my_prefix_discourse_email_verification', 10, 2 );
function my_prefix_discourse_email_verification( $require_activation, $user_id ) {
$user = get_userdata( $user_id );
if ( /* شرط ما يتم اختباره ضد $user */ ) {
return true;
}
return false;
}
Webhook بيانات المستخدم
يوجد هذا Webhook لأسباب تاريخية - يمكن الآن ملء حقل اسم Discourse تلقائيًا باستخدام خيار «إنشاء أو مزامنة مستخدمي Discourse عند تسجيل الدخول» في مزود DiscourseConnect.
يمكن استخدام Webhook Update Userdata (في لوحة إعدادات “Webhooks”) عندما يكون WordPress هو مزود DiscourseConnect لموقع Discourse الخاص بك. يقوم Webhook تلقائيًا بملء حقل اسم المستخدم في Discourse على WordPress.
إنشاء رابط تسجيل دخول DiscourseConnect
إذا كان خيار مزود DiscourseConnect مفعلًا، فيمكنك إضافة رابط تسجيل دخول DiscourseConnect إلى موقع WordPress الخاص بك عن طريق إنشاء رابط بالهيكل التالي:
<a href="https://discourse.example.com/session/sso?return_path=/">المجتمع</a>
اضبط قيمة return_path على الصفحة في المنتدى الذي تريد أن ينتهي بها المستخدم. يمكنك إضافة رابط تسجيل دخول SSO إلى قائمة WordPress عن طريق إضافة URL بهذا الهيكل كرابط مخصص في قسم القوائم في لوحة تحكم WordPress.
تسجيل الدخول إلى WordPress باستخدام Discourse (عميل DiscourseConnect)
لتفعيل عمل موقعك كعميل DiscourseConnect لـ Discourse، انقر فوق علامة التبويب DiscourseConnect Client. في تلك الصفحة، حدد خيارات Enable DiscourseConnect Client و Add Login Link.
الآن اذهب إلى صفحة الإدارة/الإعدادات في Discourse وابحث عن ‘discourse connect’ لعرض جميع خيارات DiscourseConnect الخاصة بك.
- حدد إعداد ‘enable discourse connect provider’
- انسخ
DiscourseConnect Secret Keyالخاص بك من WordPress إلى حقل ‘secret’ في إعداد ‘discourse connect provider secrets’ في Discourse. في حقل ‘domain’ الخاص بهذا الإعداد، أدخل نطاق موقع WordPress الخاص بك. ثم انقر فوق علامة الصح الخضراء لحفظ إعداداتك.
عند الانتهاء، يجب أن يبدو إعداد ‘discourse connect provider secrets’ في Discourse كما يلي (مع تعيين النطاق إلى نطاق WordPress الخاص بك):
يجب أن يعمل Discourse الآن كمزود DiscourseConnect لموقع WordPress الخاص بك.
افتح موقع WordPress الخاص بك في نافذة تصفح خاصة (Incognito) في متصفحك. عندما تذهب الآن إلى صفحة تسجيل الدخول، يجب أن ترى رابط «تسجيل الدخول باستخدام Discourse» أسفل نموذج تسجيل الدخول. انقر عليه وسيتم نقلك إلى نموذج تسجيل الدخول في Discourse. سجل الدخول هناك، وسيتم إعادة توجيهك إلى صفحة تسجيل الدخول في WordPress مع إشعار يقول إنه يجب عليك مزامنة حسابك مع Discourse. اتبع التعليمات في الإشعار لربط حساباتك، وسيتم بعد ذلك تسجيل الدخول إلى موقع WordPress الخاص بك عبر Discourse.
ملاحظة: يؤثر هذا السلوك فقط على المستخدمين الذين لديهم حسابات موجودة مسبقًا على كل من WordPress و Discourse. سيتمكن حسابات WordPress الجديدة التي يتم إنشاؤها عبر DiscourseConnect من تسجيل الدخول بحرية إلى WordPress في المرة الأولى التي ينقر فيها المستخدم على رابط «تسجيل الدخول باستخدام Discourse». لتسهيل تسجيل الدخول للمستخدمين الذين لديهم حسابات موجودة مسبقًا على موقع WordPress الخاص بك وعلى منتدى Discourse الخاص بك عبر Discourse، حدد خانة الاختيار Sync Existing Users by Email في علامة التبويب DiscourseConnect Client.
مزامنة تسجيل الخروج من Discourse
عند تفعيل DiscourseConnect، يمكن مزامنة تسجيل الخروج من Discourse مع موقع WordPress الخاص بك عن طريق إضافة home_url لموقعك مع معامل الاستعلام request=logout إلى إعداد موقع Discourse logout redirect. يوجد هذا الإعداد في قسم إعدادات Discourse في /admin/site_settings/category/users. إليك مثال على عنوان URL «إعادة التوجيه عند تسجيل الخروج»:
http://example.com/?request=logout
استكشاف الأخطاء وإصلاحها
إذا كنت تواجه مشاكل في استخدام WordPress كمزود DiscourseConnect لمنتدىك، فإن أول الأشياء التي يجب التحقق منها هي:
- أن مفاتيح DiscourseConnect السرية المحددة على WordPress و Discourse متطابقة
- تأكد من أنك حددت
Enable DiscourseConnect Providerعلى موقع WordPress الخاص بك - تأكد من أنك أدخلت
discourse connect urlالصحيح على Discourse.
“خطأ في تسجيل الدخول” عند استخدام DiscourseConnect
إذا تلقى المستخدمون رسالة «خطأ في تسجيل الدخول» عند محاولة تسجيل الدخول إلى Discourse، يرجى الاطلاع على:
Debug and fixing common DiscourseConnect issues.
تعطيل DiscourseConnect
إذا لم يكن DiscourseConnect يعمل بالنسبة لك، فيمكنك إيقافه عن طريق تعطيل إعداد الموقع enable discourse connect. إذا لم تكن مسجل الدخول إلى حساب مسؤول في مكان ما لتعطيله، فلا تقلق، فهناك عدة طرق يمكنك من خلالها العودة وإيقافه.
تسجيل الدخول عبر /users/admin-login
افتح نافذة متصفح جديدة وأدخل عنوان URL الخاص بمنتدىك في شريط العنوان متبوعًا بـ /users/admin-login، على سبيل المثال:
https://community.mysite.com/users/admin-login
يجب أن ترى حقل إدخال يطلب منك البريد الإلكتروني للمسؤول. بعد تقديم بريدك الإلكتروني، ستستلم بريدًا إلكترونيًا يحتوي على رابط يسمح لك بتسجيل الدخول مباشرة إلى حسابك الإداري. بعد ذلك، يمكنك الذهاب إلى إعدادات الموقع وتعطيل enable discourse connect لإيقاف DiscourseConnect.
إذا لم ينجح هذا لسبب ما، فلا تقلق، لا يزال بإمكانك إيقاف DiscourseConnect عبر وحدة تحكم الخادم (
)
إيقاف DiscourseConnect عبر وحدة تحكم الخادم
إذا لم تكن تعرف ما هي وحدة تحكم الخادم، أو ليس لديك وصول إليها، فاتصل بمزود الاستضافة الخاص بك للمساعدة. بعد الدخول إلى خادمك عبر SSH، الأوامر التي تحتاج إلى تشغيلها هي كما يلي:
cd /var/discourse
./launcher enter app
rails c
SiteSetting.enable_discourse_connect=false
exit
exit







