اعضاء Discourse يتم تسجيل خروجهم - كيف يمكن إصلاح ذلك؟

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

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

يبدو أن هناك ثغرة في المنطق هنا. لتنفيذ SSO بشكل صحيح، ألا ينبغي أن تكون هناك طريقة لـ ديسكورش لإخباري إذا كانت جلسة المستخدم نشطة (حتى لو كان يقرأ فقط)؟ ربما يجب على ديسكورش إرسال نبض كل 5 دقائق إذا كان العضو نشطًا لكنه لم يولد أي رسائل ويب هوك أخرى.

أو ربما عندما يعتقد موقعي أن المستخدم قد انتهى وقت جلسته، يجب علي الاتصال بـ ديسكورش والسؤال عما إذا كان المستخدم نشطًا هناك. هل هناك طريقة للقيام بذلك؟ (أرى الرابط Is there an endpoint to check if a user is logged in - #3 by pfaffman لكنني لا أستطيع تحديد ما إذا كان هذا ما أريده تمامًا، و /session/current.json غير موجود في وثائق الـ API.) ومع ذلك، سيؤدي ذلك إلى عدد هائل من مكالمات الـ API — فأنا أقوم بتسجيل خروج حوالي 15-20 مستخدمًا كل دقيقة في موقعي بسبب عدم النشاط، لذا سيتطلب ذلك مكالمة لكل واحد منهم (وربما أكثر من مكالمة واحدة إذا لم يكن لدي ذاكرة تخزين محلية لـ معرف ديسكورش الخاص بهم).

يا أصدقائي، ما رأيكم أو نصيحتكم؟