Cliente WordPress DiscourseConnect - nonce expirado

O problema não é com o cache de objetos do WordPress, pois, até onde sei, ele não é persistente entre as requisições. O problema ocorre com sites que possuem algum tipo de cache persistente: https://developer.wordpress.org/reference/classes/wp_object_cache/#persistent-caching. Isso pode ser configurado através de um plugin, mas também é habilitado por padrão por alguns provedores de hospedagem, por exemplo, a WP Engine. Acredito que no caso da WP Engine, eles não habilitam o cache de objetos em sua página de login, mas o habilitam para usuários anônimos em todas as outras páginas. Portanto, na WP Engine, o problema só é acionado se o link “login with Discourse” for adicionado a uma página diferente da página de login.

O problema com o discourse_sso_url é que, quando ele é sempre definido com o mesmo valor, para sites que têm um cache persistente habilitado, ele sempre retornará o mesmo nonce. Definir seu valor discourse_sso para uma string aleatória, em vez de seu valor padrão de 1, quebra o cache. Pelo menos sempre funcionou dessa forma quando testei anteriormente. No momento, não tenho as coisas configuradas para testar.

Editar: há mais alguns detalhes sobre o problema aqui: Discourse (as provider) + WP SSO nonce error - #14 by simon. Faz um bom tempo que não olho para isso. A correção para o problema na época parecia ser tanto adicionar uma string aleatória ao discourse_sso_url quanto garantir que o cache de página não estivesse habilitado na página onde o link de login era exibido (caso contrário, a string aleatória não será única para cada visita de um usuário anônimo).