Outro código personalizado na instalação do WP está impedindo o WP Discourse de redirecionar de volta para o fórum

Estamos usando DiscourseConnect através do WP Discourse e passamos pelo excelente guia de configuração aqui no meta. No entanto, após o login do WordPress aparecer, somos redirecionados para a página de perfil do WordPress em vez do Discourse. Estamos na versão 6.0.1 do WordPress e na versão 2.4.5 do WP Discourse.

  1. Vá para a página do fórum
  2. Clique em login
  3. Redirecionado para o site do WordPress /wp-login.php
  4. Insira as informações de login do WordPress
  5. Enviado para /wp-admin/profile.php
  6. Se você digitar o URL do fórum novamente, será redirecionado para a página de login.

Verificamos os URLs e segredos três vezes, e todos estão corretos. Os usuários estão no WordPress e têm endereços de e-mail verificados. Alguma outra ideia de onde devemos procurar?

Olhar nos logs do WP Discourse ou nos logs do Admin no Discourse não parece indicar nada interessante, mas eu os incluí aqui:

wp-discourse-logs-metafile-2022-08-15-2022-08-29.txt (1,6 KB)
wp-discourse-2022-08-29-1-log.txt (8,5 KB)

Saída do Discourse /logs

Log SSO detalhado: Processo SSO iniciado

add_groups:
admin:
moderator:
avatar_force_update:
avatar_url:
bio:
card_background_url:
confirmed_2fa:
email:
external_id:
groups:
locale:
locale_force_update:
location:
logout:
name:
no_2fa_methods:
nonce: xxxxxxxxxxxxxxx
profile_background_url:
remove_groups:
require_2fa:
require_activation:
return_sso_url: https://forum.innovativeusers.org/session/sso_login
suppress_welcome_message:
title:
username:
website:
2 curtidas

@wesochuck Obrigado por explicar em detalhes.

Este é muito provavelmente um conflito com outro plugin que você está usando. Quando vimos um comportamento semelhante no passado, foi porque outro plugin estava usando um filtro como wp_redirect.

Por favor, revise sua lista de plugins, desativando-os um por um e tentando fazer login. Da mesma forma, se você tiver algum código personalizado em seus temas.

2 curtidas

Obrigado pela resposta. Alguma dica adicional para rastrear quais plugins ou código personalizado podem estar causando o problema? Tentamos desabilitar todos os plugins e ainda não tivemos sorte.

Tenho certeza de que é alguma alteração não padrão que foi feita, mas sem ter que reconstruir o site inteiro do zero, estamos tendo dificuldade em rastrear o que pode ser.

2 curtidas

Se você for capaz de pesquisar o código não principal do WordPress em execução em seu site, pesquise pelas strings

  • wp_redirect (um filtro)
  • wp_login_url (um método)
  • parse_query (uma ação)

Verifique onde quaisquer instâncias dessas strings são encontradas. No passado, isso foi causado por outros plugins que usaram incorretamente um desses filtros, métodos ou ações.

Eu gostaria de poder ajudar mais, mas o problema aqui não é causado pelo plugin WP Discourse. É um problema com algum código personalizado em um tema, plugin ou algum outro script em sua instalação do WordPress.

Infelizmente, não consigo descobrir isso daqui, nem o plugin WP Discourse pode registrar isso de alguma forma. Os filtros, métodos e ações do WordPress podem ser usados por qualquer coisa e a “prioridade” (ou seja, a ordem em que as coisas são executadas) também pode ser substituída por qualquer coisa.

3 curtidas

Isso é uma grande ajuda e um bom ponto de partida. Obrigado! Relatarei assim que descobrirmos o que é, para que outros não tenham que cavar tanto.

1 curtida

Fizemos uma seleção para um plugin da X-CD, que é uma plataforma de gerenciamento de conferências e membros. Entraremos em contato com eles para ver como eles estão fazendo alterações no processo de login que quebram a integração.

Obrigado pela sua ajuda, @angus!

2 curtidas

A empresa de gerenciamento de membros pôde auxiliar com as seguintes alterações que resolveram o problema:

Adicionei o seguinte código ao arquivo functions.php do seu tema atual:

function example_allow_extra_redirect( $hosts ) {
$hosts = '[forum.example.org](http://forum.example.org/)';
return $hosts;
}
add_filter( 'allowed_redirect_hosts', 'example_allow_extra_redirect' );
1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.