Como administrador de um fórum que usa o DiscourseConnect, você pode ocasionalmente receber relatos de usuários de que, ao tentar fazer login no fórum, são recebidos por uma mensagem de erro. Por exemplo: “Há um problema com sua conta. Entre em contato com o administrador do site.”
Habilitando o registro detalhado (verbose) do Discourse Connect
Para depurar o problema, a primeira coisa que você precisa fazer é habilitar a Configuração do Site “verbose discourse connect logging” no Discourse. Se essa configuração já estava habilitada anteriormente, você pode ir diretamente aos logs do seu site em Admin/Logs/Error Logs. Se a configuração não estava habilitada anteriormente, você precisará pedir ao usuário que tente fazer login novamente para que você possa gerar uma entrada de log de sua tentativa de login falha.
Lendo a entrada do log
Vá para Admin/Logs/Error Logs e procure uma entrada de log recente que comece com Verbose SSO log: Record was invalid. Se tiver dificuldade para encontrar a entrada, digite ‘Record was invalid’ na caixa de pesquisa na parte inferior da página de logs. Clique na entrada do log. Em seguida, clique na aba ‘info’ na barra de ferramentas dos logs:
As informações de que você precisará são o motivo (fornecido na entrada do log) e o email e external_id (encontrados na seção de informações).
Resolvendo problemas de login do DiscourseConnect relacionados ao require_activation
Um problema comum com login SSO é: Record was invalid: User {:primary_email=>\"has already been taken\"}.
Isso pode acontecer quando o parâmetro require_activation no payload SSO está definido como true e o usuário já possui uma conta existente no Discourse que ainda não tem um single_sign_on_record associado a ela, ou possui um single_sign_on_record, mas o external_id do registro não corresponde ao external_id do usuário que está tentando fazer login.
Para confirmar isso, acesse o console Rails do seu fórum e pesquise por um usuário que tenha o endereço de e-mail usado na tentativa de login SSO falha:
u = User.find_by_email('sally@example.com')
Agora, verifique se há um single_sign_on_record para este usuário:
sso_record = u.single_sign_on_record
Se o usuário existir no seu fórum, mas não tiver um registro SSO, você pode criar um registro para ele usando os valores do log SSO:
SingleSignOnRecord.create!(user_id: 2, external_id: 2, external_email: 'sally@example.com', last_payload: '')
O usuário agora deverá conseguir fazer login.
Se houver um registro SSO existente para o usuário, mas seu external_id não corresponder ao external_id da tentativa de login falha, você precisará investigar o motivo disso. Uma maneira como isso pode acontecer é se a conta de um usuário foi excluída e depois recriada no site do provedor SSO. Nesse caso, você pode atualizar o registro SSO para usar o novo external_id:
sso_record.external_id = <failed-sso-login-record-external_id>
sso_record.save!
O usuário agora deverá conseguir fazer login.
Se você estiver usando o plugin WP Discourse e enfrentando o problema descrito acima, consulte Validate Email Addresses with the WP Discourse plugin para detalhes sobre como resolver o problema sem precisar acessar o console Rails.


I was trying it with the " < > " and it wasn’t working, of course ツ



Thank you!