É possível?

Olá, membros!
Espero que todos estejam bem.
Construí um fórum Discourse e tentei conectá-lo ao meu site (ASP.NET).
Primeiro, usei o Discourse-Connect e tive sucesso, no entanto, com ele os usuários não conseguem fazer login e se inscrever no fórum.
Então, tentei usar a Discourse-API para fazer login no fórum, mas não foi concluído.
Li muitas documentações, mas não encontrei a solução correta.
Por favor, alguém pode me ajudar a resolver este problema ou me dizer a possibilidade, a solução correta.
Atenciosamente

Você tem duas possibilidades:

  • Configurar o DiscourseConnect para que os usuários se cadastrem e façam login no seu site, e quando tentarem fazer login no seu fórum, isso será automático. Esta é a configuração usual. Se você configurar as coisas dessa forma, todo o registro e login ocorrerão no seu site. O login e o registro de nome de usuário/senha no seu fórum serão desativados.

  • Configurar o DiscourseConnect para que os usuários se cadastrem e façam login no seu fórum, e quando tentarem fazer login no(s) seu(s) site(s), isso será automático. Isso é chamado de configurar o Discourse como Provedor DiscourseConnect e como fazer isso pode ser encontrado aqui.

3 curtidas

Obrigado pela sua resposta rápida. Existe alguma possibilidade sem o DiscourseConnect?

Por que você não quer usá-lo?

Claro que você pode implementar algo sozinho, mas você jogará fora anos de experiência que foram dedicados à construção do DiscourseConnect. Portanto, antes de decidir empreender essa tarefa gigantesca, você deve decidir qual bom motivo você tem para construir algo sozinho em vez de usar o que já está disponível.

5 curtidas

Claro, sei que o DiscourseConnect é um excelente recurso.
Mas meu objetivo é o login e o cadastro local no Fórum Discourse.
Então, tentei usar a API do Discourse.
Não há possibilidades com a API do Discourse?
Obrigado.
Atenciosamente

Ok, se você quiser fazer login e cadastro localmente no Discourse, por favor, me diga que tipo de integração com seu site você está procurando.

2 curtidas

Meu propósito é gostar disto:

  1. Se o usuário estiver logado no meu site, ao ir para o fórum, o usuário fará login automaticamente no fórum.
  2. E o usuário pode fazer login e se inscrever no fórum.
  3. Se o usuário estiver logado no fórum, ao ir para o meu site, o usuário fará login automaticamente no meu site.
    Com o DiscourseConnect, posso executar 1) e 3), mas não consigo executar 2).
    mas 2) é muito importante para nós.

Se você permitir que os usuários se registrem em dois lugares, as coisas rapidamente se tornarão uma bagunça, e é por isso que você tem que fazer uma escolha: ou os usuários se registram em seu site ou os usuários se registram em seu fórum, mas não em ambos.

Por que isso é tão importante para você?

3 curtidas

Obrigado pela sua ajuda.
No entanto, meu chefe quer isso.
Por favor, verifique meu desempenho.
Tentei me apresentar com a API do Discourse assim

  1. chame GET ‘/session/csrf’ e obtenha o token csrf e o cookie
  2. chame POST ‘/session’ com Header: ‘X-CSRF-Token’=‘token csrf’, ‘Cookie’ = ‘cookie obtido’, Dados: login, senha, fuso horário, método de segundo fator, token de autenticidade
  3. chame POST ‘/login’ com Header: ‘Cookie’=‘cookie obtido de /session’
    Dados: nome de usuário, senha, redirecionamento

Todos os logs são os mesmos do fluxo de login do Discourse.
Mas quando redireciono para o fórum do Discourse, o usuário não está logado.

Como posso resolver este problema? O que está errado?

Obrigado novamente pela sua ajuda.

PS. Meu servidor é um servidor Ubuntu Nginx.

Então você precisa explicar ao seu chefe que ter usuários se registrando em mais de um lugar é uma péssima ideia. As coisas se tornarão uma bagunça enorme. Explique a ele o que acontece quando você se registra no site com o nome de usuárioA e no fórum com o nome de usuárioB, com o mesmo endereço de e-mail! Ou o que aconteceria se o usuário mudasse sua senha apenas no site, ou apenas no Discourse. Então as coisas vão quebrar!

O que você fez faz com que seu SERVIDOR faça login no fórum como o usuário. Ele não definirá os cookies de sessão para o usuário, portanto, não fará login do usuário no fórum.

Além disso, aparentemente você tem a senha em texto simples do usuário à sua disposição. Isso é uma PÉSSIMA ideia. Você deve sempre armazenar um hash (criptografia unidirecional) de uma senha e nunca a senha em texto simples. Quando seu banco de dados for invadido, todas as senhas dos seus usuários serão conhecidas pelo invasor. Outra coisa boa para explicar ao seu chefe.

Eu lhe dei três bons motivos que você pode usar para convencer seu chefe a fazer as coisas de forma diferente. Isso só levará a enormes problemas. Não posso ajudá-lo a fazer isso funcionar, porque não funcionará. Mesmo que você consiga fazer funcionar, só funcionará a curto prazo.

6 curtidas

Entendido.
Explicarei isso ao meu chefe.
Muito obrigado.
Quero discutir mais com você (claro que não sobre isso).
Atenciosamente

Por favor, ajude-me mais uma vez.
Meu servidor de fórum tem um domínio principal e vários subdomínios.
Posso criar vários fóruns do Discourse em cada domínio usando um banco de dados?
E posso construir assim?:

  • No Domínio Principal, login e cadastro local possíveis.
  • Nos subdomínios, com DiscourseConnect, conectar aos meus sites.
    Se possível, por favor, me guie na construção.
    Se impossível, por favor, me diga o motivo.
    Obrigado.

Sim, isso é possível.

  • Procure por “multisite” neste fórum.
  • Configure o site principal como provedor do DiscourseConnect
  • Configure os sites de subdomínio como cliente do DiscourseConnect
3 curtidas