Olá,
Estou tentando criar um processo de login para o Discourse a partir do meu aplicativo front-end. Como devo fazer isso?
Obrigado ![]()
Olá,
Estou tentando criar um processo de login para o Discourse a partir do meu aplicativo front-end. Como devo fazer isso?
Obrigado ![]()
Esta é a solução usual:
Se você estiver gerenciando usuários apenas no Discourse, um botão de redirecionamento provavelmente será mais fácil!
Obrigado pela sua resposta! Mas posso abrir um tipo de iframe para que eles possam escolher como ser autenticados?
Não, iframes não são suportados.
Você pode gerenciar contas de usuário em seu site principal e, em seguida, autenticar com o Discourse Connect, ou simplesmente ter um link para o seu Discourse.
Você poderia vincular à rota de login para solicitá-los imediatamente? /login
Não consigo realmente entender como usar isso. Quero dizer, imagino algo como um botão de login no meu site, então o usuário precisa escolher como ser autenticado, certo? Quero dizer, qual é o fluxo possível para este cenário?
Por que você precisa que eles façam login no seu site? Você está gerenciando contas de usuário lá?
Quero poder criar posts/tópicos do meu front-end, então preciso que eles sejam autenticados primeiro. Faz sentido?
OK, faz algum sentido. Essencialmente, você está dizendo: “Quero reescrever partes da interface do usuário e me comunicar apenas via API”?
Não acho que você receberá muito suporte gratuito para ajudá-lo a fazer isso aqui, mas dê uma olhada em:
https://meta.discourse.org/t/help-with-authenticating-user-via-api/178355/2?u=merefield
Existem esforços existentes para fazer isso, particularmente via aplicativo, você pode querer pesquisá-los, por exemplo:
Também houve o Fig, mas ainda não é de código aberto:
Mas observe o nível extremamente alto de desenvolvimento inicial e manutenção que esses tipos de soluções exigem. Acredito que os dois melhores exemplos foram abandonados (?)
Alternativamente, considere construir seu site como uma instância do Discourse inteiramente (via plugins e componentes de tema) para evitar ter que reescrever muitos elementos da interface do usuário.
Estou usando o Discourse como meu provedor de identidade e tem funcionado muito bem. Você pode usá-lo para criar um link de "Login" em seu site que levará seu usuário à sua instância do Discourse e, se ele já estiver logado ou após concluir o fluxo de login, o usuário será redirecionado para o return_sso_url que você adicionou ao payload, com as credenciais e informações do usuário. Este return_sso_url pode ser uma rota em seu site que armazena a sessão autenticada da maneira que você preferir (como um cookie de sessão) assim que recebe o payload do Discourse.
Para constar, o Lexicon não foi abandonado e ainda está em desenvolvimento ativo.
@Roie_Natan se você tem familiaridade com Javascript, você poderia dar uma olhada no código fonte do Lexicon para ver como isso foi feito.
No entanto, como @merefield apontou, existem posts existentes que podem te ajudar a descobrir isso.
Aqui está um recurso falando sobre sessões de usuário: Storing extra data about a user's session - #3 by sam
E você também pode achar o fluxo de autenticação do aplicativo do @pmusaraj útil:
Ótimo! Obrigado pela correção.