المشكلة ليست مع ذاكرة التخزين المؤقت لكائنات ووردبريس، على حد علمي فهي ليست دائمة عبر الطلبات. تحدث المشكلة مع المواقع التي لديها نوع من التخزين المؤقت الدائم: https://developer.wordpress.org/reference/classes/wp_object_cache/#persistent-caching. يمكن تكوين هذا من خلال إضافة، ولكنه ممكّن أيضًا افتراضيًا من قبل بعض مزودي الاستضافة، على سبيل المثال WP Engine. أعتقد أنه بالنسبة لحالة WP Engine، فإنهم لا يمكّنون ذاكرة التخزين المؤقت للكائنات على صفحة تسجيل الدخول الخاصة بهم، لكنهم يمكّنونها للمستخدمين المجهولين على جميع الصفحات الأخرى. لذا في WP Engine، يتم تشغيل المشكلة فقط إذا تم إضافة رابط “تسجيل الدخول باستخدام Discourse” إلى صفحة غير صفحة تسجيل الدخول.
المشكلة مع discourse_sso_url هي أنه عندما يتم تعيينه دائمًا على نفس القيمة، بالنسبة للمواقع التي تم تمكين التخزين المؤقت الدائم لها، فإنه سيعيد دائمًا نفس قيمة nonce. تعيين قيمة discourse_sso الخاصة به إلى سلسلة عشوائية، بدلاً من تعيينها على قيمتها الافتراضية 1 يكسر ذاكرة التخزين المؤقت. على الأقل لقد نجح الأمر دائمًا بهذه الطريقة عندما اختبرته سابقًا. ليس لدي إعدادات لاختباره في الوقت الحالي.
تعديل: هناك بعض التفاصيل الإضافية حول المشكلة هنا: Discourse (as provider) + WP SSO nonce error - #14 by simon. لقد مر وقت طويل منذ أن نظرت في هذا. بدا أن الحل للمشكلة في ذلك الوقت هو إضافة سلسلة عشوائية إلى discourse_sso_url و التأكد من عدم تمكين التخزين المؤقت للصفحة على الصفحة التي تم عرض رابط تسجيل الدخول عليها (وإلا، فلن تكون السلسلة العشوائية فريدة لكل زيارة من قبل مستخدم مجهول.)