Como posso verificar no meu site se o usuário está logado no meu Discourse?

Estou construindo um aplicativo desktop, com um fórum complementar (rodando Discourse, é claro) e um site.

Em nosso site, eu gostaria de mostrar algumas informações extras se o visitante do site também estiver logado no fórum.

Descobri como fazer login a partir do site ou do aplicativo desktop (veja esta postagem), mas o que não consigo encontrar é uma maneira de verificar se o meu visitante do site está logado (e, se estiver, quem ele é), sem realmente pedir que ele faça login.

Existe alguma maneira de fazer isso, por exemplo, usando a API do Discourse?

1 curtida

Acho que você pode precisar obter o ID do usuário da carga útil do SSO e, em seguida, usar uma solicitação da API do Discourse para obter o nome de usuário e o status de login atual.

Se o usuário fizer login no site do fórum, como posso obter a carga útil do SSO mais tarde? Eu sei como obtê-la quando inicio o login (gerando um link {forum_url}/session/sso_provider?sso=... etc.), mas quando o usuário inicia o login, então eu não tenho ideia de como eu poderia obter a carga útil do SSO.

Isso deve ser possível, embora o URL exato para a solicitação da API não pareça estar documentado em https://docs.discourse.org. Qual seria o URL correto?

1 curtida

Não tenho certeza, mas suspeito que você precise acessar o user_auth_token dos dados JSON da carga útil? Apenas um palpite para te dar ideias. Talvez alguém que saiba mais sobre o Discourse Connect SSO possa te ajudar.