أنت على حق تمامًا في أن النقر على “رد” سيؤدي إلى بدء تدفق تسجيل الدخول. وإذا تم استخدام DiscourseConnect (أو أي مزود تسجيل دخول واحد آخر)، فسيتم تخطي نافذة تسجيل الدخول الخاصة بـ Discourse ![]()
ومع ذلك، أعتقد أن المؤلف الأصلي يريد تسجيل دخول الأشخاص تلقائيًا، دون الحاجة إلى النقر على “رد” أو “تسجيل الدخول”. مع هذا النوع من الإعداد، سيكون الأمر سلسًا تمامًا للمستخدمين للانتقال بين الموقع الرئيسي والمجتمع. لقد حققنا ذلك لعدد قليل من العملاء، ولكن هذه كانت تطبيقات مخصصة لا يمكن تعميمها بسهولة.
لإعطاء مثال على أحد الأساليب: إذا كان منتدىك على forum.example.com، وكان موقعك الرئيسي على example.com، فسيُسمح للمنتدى بقراءة ملفات تعريف الارتباط من example.com. لذلك يمكن لمكون سمة التحقق من وجود ملف تعريف ارتباط وتنفيذ شيء مثل هذا:
const cookie = require("discourse/lib/cookie").default;
if(cookie('name_of_example_com_auth_cookie') && !api.getCurrentUser()){
// لدى المستخدم ملف تعريف ارتباط مصادقة لـ example.com. من شبه المؤكد أنهم
// مسجلون الدخول هناك، لذا دعنا نبدأ تدفق المصادقة
window.location = "https://forum.example.com/auth/oidc"
}
(تنطبق شروط مختلفة هنا. على سبيل المثال، يجب ألا يكون ملف تعريف الارتباط http_only، ويجب ألا يكون ملف تعريف ارتباط خاص بالمضيف، وما إلى ذلك)