Este é o método que está acionando o erro:
def nonce_valid?
if SiteSetting.discourse_connect_csrf_protection
nonce && @secure_session[nonce_key].present?
else
nonce && Discourse.cache.read(nonce_key).present?
end
end
Ele verifica se o nonce foi gerado pelo Discourse para a mesma sessão daquela que redireciona o usuário de volta para o Discourse.
Você pode tentar definir a configuração do site discourse_connect_csrf_protection como false. Seu valor padrão é true. É uma configuração de site oculta, portanto, só pode ser desabilitada a partir do console Rails.
Quando habilitada, a configuração discourse_connect_csrf_protection garante que todo o processo de autenticação SSO ocorra por meio de redirecionamentos do navegador. Se você estiver iniciando o processo de autenticação fazendo uma solicitação em segundo plano para session/sso, precisará desabilitá-la. Mais detalhes aqui: DiscourseConnect flow no longer functions - #5 by david.