Problema na redireção do sso para compor um novo tópico pré-preenchido via URL

Olá

Estou implementando meu próprio serviço de autenticação como provedor de SSO para o Discourse. Está funcionando bem. Mas quando meus usuários (usuários não logados) abrem uma URL de tópico pré-preenchida, eles não veem os dados pré-preenchidos após o redirecionamento de volta para o Discourse.

Cenário completo:

  • Um usuário não logado abre uma URL de criação de tópico pré-preenchida
  • Ele é automaticamente redirecionado para a página de SSO
  • Ele faz login usando o SSO e é redirecionado de volta para http://discourse_site/session/sso_login?....
  • Aqui, espero que o usuário veja a caixa de criação de tópico com os dados preenchidos, mas o Discourse apenas mostra a página do tópico mais recente. Nem mesmo mostra a caixa de criar tópico

Alguém pode me ajudar com esse problema? Há algum problema na minha configuração ou é um bug?

Posso confirmar também que, se eu estiver em um tópico específico e pressionar login, o redirecionamento funcionará corretamente e eu retornarei a esse tópico.

2 curtidas

Tente usar a abordagem descrita aqui: Creating pre-filled personal message links - #11.

2 curtidas

Ok, está funcionando. Muito obrigado.

mensagem antiga:

Obrigado @simon pela sua resposta. Infelizmente, não consegui fazer funcionar. No seu link, dizia para usar uma URL como

http://localhost:3000/session/sso?return_path=http%3A%2F%2Flocalhost%3A3000%2Fnew-message%3Fusername%3Dscossar%26title%3DInformation+requested+about+gentle+yoga+classes

Primeiramente, eu supus que deveria adicioná-la na etapa 6 da documentação oficial do SSO do Discourse. Então seria algo como:

http://discourse_site/session/sso_login?sso=payload&sig=sig&return_path=https%3A%2F%2Fdiscourse_site%2Fnew-message%3Fusername%3Dscossar%26title%3DInformation%2Brequested%2Babout%2Bgentle%2Byoga%2Bclasses

Mas não funcionou. Então comecei a testá-la em diferentes lugares e nenhum deles funcionou. Poderia elaborar mais sobre onde devo colocar o return_path?

1 curtida

Tudo o que você precisa fazer é criar um link no formato apresentado naquele post. Você precisará substituir a URL correta do seu site Discourse e alterar o nome de usuário de scossar para um nome de usuário que exista no seu site. Não adicione os parâmetros payload ou sig ao link. Tudo isso já deve ser tratado pela sua implementação SSO existente. O único propósito do parâmetro return_path é redirecionar o usuário para uma URL que criará o tópico pré-preenchido.

Observe que, no exemplo ao qual me vinculei, estou criando uma mensagem pré-preenchida, não um tópico pré-preenchido. Você precisará ajustar o return_path fornecido no código de exemplo para criar um tópico em vez de uma mensagem.

1 curtida

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