Estamos usando o Discourse com SSO e funciona muito bem.
No entanto, estou enfrentando uma situação estranha.
Estamos utilizando links de mensagens privadas do Discourse em nosso site externo (paddling.com) para criar uma nova mensagem privada no Discourse (forums.paddling.com).
Se o usuário estiver logado nos fóruns, funciona exatamente como esperado.
Se o usuário fizer login no paddling.com (mas não tiver acessado os fóruns antes), ao clicar no link para criar uma nova mensagem, ele simplesmente abre os fóruns (sem criar a nova mensagem).
Se o usuário clicar no link da mensagem uma segunda vez, a mensagem funciona.
Parece que o problema é que, embora o usuário esteja logado no paddling.com, ele não está logado nos fóruns até acessar uma página em forums.paddling.com.
Talvez você possa usar a abordagem descrita aqui: Creating pre-filled personal message links. Eu não testei usá-la com o return_path definido para compor uma MP pré-preenchida, mas acredito que seria possível fazer funcionar.
A mensagem pessoal pré-preenchida funciona bem (desde que o usuário esteja logado). Vou pedir ao nosso desenvolvedor para verificar o uso do return_path.
Acabei de reler minha resposta anterior. O que eu quis dizer foi que a abordagem descrita neste tópico deve funcionar: Criar um link de login SSO. É assim que nosso plugin do WordPress cria links que fazem o login automático dos usuários no Discourse. O que ainda não testei é usar essa abordagem com uma URL de mensagem pré-preenchida definida para o return_path.