Esta é apenas uma solicitação geral de ajuda com a direção - queremos usar o registro / gerenciamento de usuários / banco de dados do Discourse para registrar os mesmos detalhes em nosso banco de dados de jogos externo (para que o jogador possa usar os mesmos detalhes de login para entrar no jogo).
Atualmente, estou revisando o repositório git para ter uma ideia de como as coisas funcionam, etc.
O plano geral, como mencionado, é que quando um usuário se registra no fórum, o Discourse registrará os detalhes do usuário em nosso banco de dados de jogos (hospedado em outro vps). Se eles atualizarem a senha ou o e-mail, isso também será refletido em nosso banco de dados SQL.
Já tenho um fórum Discourse auto-hospedado funcionando há algumas horas, então ainda estou aprendendo o Discourse no momento.
Portanto, minha pergunta é: há algum lugar em que devêssemos começar a trabalhar nisso no Discourse?
Isso parece que SSO / DiscouseConnect precisa que os e-mails sejam validados por terceiros.
Este é um problema para nossa configuração específica, pois gostaríamos que o Discourse lidasse com a validação de e-mails e gerenciamento de contas como de costume, mas apenas repassasse as informações do banco de dados para o nosso banco de dados de jogos.
Portanto, em essência, o inverso do que o SSO faz.
Simplesmente: o Discourse precisa lidar com tudo, eu só preciso obter algumas informações do usuário do seu banco de dados.
Quando você usa o Discourse como provedor de identidade, como Richard sugeriu, o Discourse cuidará da validação de e-mail para você.
Quando o usuário passa pelo fluxo SSO no Discourse e depois volta para o seu site, você pode usar a resposta que o Discourse adiciona como uma string de consulta incorporada ao parâmetro sso, contendo e-mail, nome de usuário, nome, grupos, etc. (mas não a senha, isso não seria uma boa ideia), que você pode extrair e validar corretamente usando o sig fornecido.
Portanto, como mencionado, não é um site para onde o Discourse enviará as informações.
É um servidor de jogo - também conhecido como apenas um VPS com MySQL em execução nele.
O fluxo de trabalho antigo era este:
O Unity preenche as tabelas SQL quando os usuários “registram uma conta”.
O que estou procurando fazer é usar o Discourse como o provedor de registro e gerenciamento de contas.
Ou seja, eles se registram com o Discourse e usam essas informações para fazer login no servidor do jogo (através do cliente Unity).
Portanto, preciso de uma maneira de transferir de forma confiável os dados do usuário do Discourse para o banco de dados MySQL.
(Ambos estão na mesma máquina).
Para isso, configuramos um foreign data wrapper para Postgres → Mysql, e depois gatilhos para popular apropriadamente.
Então, quando o usuário inserir seu e-mail e senha (do Discourse) no jogo, eles poderão fazer login - teoricamente.
A outra questão sobre a qual li recentemente foi a hash de senha usada pelo Discourse (o que é bom por muitas razões), mas significa que os hashes são únicos, então não pode ser feito dessa maneira.
Portanto, novamente, não há site para o SSO, apenas o Discourse e outro VPS executando o servidor de videogame ao qual os clientes se conectam.