عميل WordPress DiscourseConnect - nonce منتهية الصلاحية

أفترض أن هذا يحدث عند تسجيل الدخول إلى ووردبريس عبر موقع Discourse الخاص بك. إذا كان الأمر كذلك، فإن المشكلة هي أن الـ nonce الذي تم إنشاؤه بواسطة ووردبريس قد انتهت صلاحيته. يحدث هذا في مواقع ووردبريس التي تم تمكين التخزين المؤقت للكائنات (Object Caching) فيها.

أحد الحلول هو تعطيل التخزين المؤقت للكائنات (Object Cache) في أي صفحات تحتوي على رابط “تسجيل الدخول باستخدام Discourse”. لهذا النهج، تأكد من تعطيل التخزين المؤقت للكائنات (Object Cache) للمستخدمين المجهولين.

حل آخر موضح هنا: Wordpress SSO Expired nonce - #15 by simon. يمكن نسخ الدالة في هذا المنشور بالضبط كما هي في ملف functions.php الخاص بسِمَة ووردبريس الخاصة بك.

تضيف هذه الدالة سلسلة عشوائية إلى عنوان URL لتسجيل الدخول باستخدام Discourse. تؤدي السلسلة العشوائية إلى قيام ووردبريس بكسر ذاكرة التخزين المؤقت وإنشاء nonce جديد للمستخدم. @angus، ربما يجب إضافة هذا إلى كود المكون الإضافي: wp-discourse/lib/sso-client/sso-client-base.php at main · discourse/wp-discourse · GitHub. لا توجد سلبيات لذلك، ولا أعتقد أن هناك طريقة أخرى للتعامل مع التخزين المؤقت للكائنات الذي يتسبب في استخدام nonces قديمة بدلاً من إنشاء nonces جديدة لكل زيارة.

3 إعجابات