SSO discourse tem erro na mesma sessão

Olá, uso SSO para fazer login no WordPress via Discourse. Utilizei o plugin Discourse para WordPress.

No início, funcionou perfeitamente.

Porém, quando estou na mesma sessão (sem fazer logout) e tento acessar o link admin /wp-admin/, ele não me redireciona para o painel de controle e exibe o seguinte erro no formulário de login:

Nonce expirado

Parece haver algum problema com a sessão ou os cookies.

Isso confunde o usuário, pois utilizo SSO com login do Google.

Acho que o problema que você está enfrentando é causado pelo cache de objetos no seu servidor. Tente adicionar algo como o seguinte código ao arquivo functions.php do seu tema do WordPress para ver se isso resolve o problema:

add_filter('wpdc_sso_client_query', 'wpdc_custom_sso_client_query' );
function wpdc_custom_sso_client_query() {
    return wp_generate_password( 12, false );
}

Há alguns detalhes sobre isso aqui: Wordpress SSO Expired nonce - #15 by simon.

Ainda falhou com este código. O Discourse não funciona bem com o Cloudflare, mas eu uso o Cloudflare no meu site para proteção. Isso é aceitável?

Funciona se eu excluir os cookies e fizer login novamente, mas é confuso.

Foi interrompido por este link:

/wp-login.php?discourse_sso_error=expired_nonce

Acho que não é a Cloudflare, porque esta regra que configurei para testar a burlar:

O teste interessante que encontrei é que nem todos os links do seu plugin falharam.

Este link está funcionando normalmente:

/?discourse_sso=7cygqwtc8aaz&redirect_to=https%3A%2F%2Fmyweb.net%2Fmy-account

Isso significa que seu parâmetro “7” no SSO está correto

Tentei redirecionar meu link para este parâmetro para redirecionar o usuário.
Você pode verificar e resolver isso ajustando os parâmetros dos links.

Este link no texto “External Login Text” está funcionando corretamente.

All-Options-‹-Working24-—-working24-net

Você finalmente encontrou uma solução? Eu tenho o mesmo problema.

Tente usar a solução apresentada aqui: Wordpress SSO Expired nonce - #15 by simon.

1 curtida

Obrigado, apliquei a correção, mas o problema persiste.

@Golaxo Você também está usando o Cloudflare?

Se sim, tente desativar o Cloudflare completamente e verifique se o problema persiste.

2 curtidas

Obrigado, amigo! Depois de xingar bastante, encontrei o problema: o plugin Paid Membership Pro causou um conflito. Ainda preciso descobrir como restringir conteúdo no WordPress para usuários que vêm do Discourse SSO, mas pelo menos já sei onde está o problema agora :slight_smile:

2 curtidas