Aqui está a minha situação. Estou tentando instalar o Discourse em talk.example.com enquanto mantenho um site em www.example.com. Quero que, quando alguém fizer login no site do Discourse, também apareça logado no site www. Se fizerem logout no Discourse, devem fazer logout no www. Li bastante sobre tópicos aqui e a resposta comum parece ser usar SSO. Não acho que isso funcione no meu caso, e aqui está o porquê.
O site em www.example.com é um site estático construído com Hugo. Para quem não conhece, pensem no Jekyll. Então, não há banco de dados nem nenhum backend para ele. Não é um “aplicativo”. Basicamente, quero que o Discourse funcione como um backend pseudo para esse site estático. Se houver notificações não lidas no Discourse, quero ser capaz de mostrar isso ao usuário por meio do site estático.
A única maneira que consigo pensar para fazer isso é por meio de cookies do Discourse que não incluam o subdomínio, mas, segundo minhas pesquisas até agora, o Discourse não suporta isso.
Se o site fosse dinâmico com um backend e você tivesse SSO entre o Discourse e o site, haveria um caminho claro a seguir. Seu backend saberia quem é o usuário e poderia usar uma Chave de API de Administrador para consultar as notificações do Discourse do usuário atual e enviá-las junto com a página em cada solicitação.
Como o site é uma página estática, ele realmente não tem um estado de login, certo?
Exatamente. É apenas HTML, CSS e JavaScript front-end típico.
Em um cenário ideal, eu gostaria de poder usar JavaScript no site estático, que roda no navegador, para buscar dados do Discourse.
Notificações são um exemplo, e um embed para isso seria ótimo.
Outro exemplo: eu adoraria poder definir um Campo de Usuário no Discourse para as pessoas preencherem. Então, no site estático, poder acessar esse campo de usuário para alterar como o conteúdo é renderizado (via JavaScript). Por exemplo, para reordenar o conteúdo e personalizá-lo para o usuário.
Sei que será uma solução não suportada, mas há uma maneira de eu alterar como o Discourse define seu cookie de sessão para não incluir o subdomínio, de forma que sobreviva a atualizações?