Клиент WordPress DiscourseConnect: истёкший nonce

Я предполагаю, что проблема возникает при входе в WordPress через ваш сайт Discourse. Если это так, то дело в том, что nonce, сгенерированный WordPress, устарел. Это происходит на сайтах WordPress, где включено объектное кэширование.

Одно из решений — отключить объектное кэширование на всех страницах, содержащих ссылку «Войти через Discourse». При таком подходе убедитесь, что объектное кэширование отключено для анонимных пользователей.

Другое решение описано здесь: Wordpress SSO Expired nonce - #15 by simon. Функцию из того сообщения можно скопировать в точности как есть в файл functions.php вашей темы WordPress.

Эта функция добавляет случайную строку к URL «Войти через Discourse». Случайная строка заставляет WordPress сбросить кэш и сгенерировать для пользователя новый nonce. @angus, это, вероятно, стоит добавить в код плагина: wp-discourse/lib/sso-client/sso-client-base.php at main · discourse/wp-discourse · GitHub. В этом нет никаких недостатков, и я не думаю, что существует другой способ решить проблему, когда объектное кэширование приводит к использованию устаревших nonce вместо генерации новых при каждом посещении.