Configuração DiscourseConnect - Sistema oficial de Single-Sign-On para Discourse (sso)

Eu acho que sua principal dúvida é sobre o campo external_id. Você precisa definir um campo external_id no payload do DiscourseConnect. O valor do campo deve ser uma string associada ao usuário que nunca mudará. Presumo que seu aplicativo tenha uma tabela de usuários. A chave primária para a entrada de um usuário nessa tabela seria um bom valor para o campo external_id.

Se um usuário criou uma conta no Discourse antes de você adicionar a autenticação DiscourseConnect do seu site, na primeira vez que ele fizer login no Discourse através do DiscourseConnect, o Discourse tentará encontrar o usuário com base no endereço de e-mail que está no payload do DiscourseConnect. Após encontrar o usuário, um registro será adicionado ao banco de dados do Discourse contendo o external_id do payload do DiscourseConnect. Na próxima vez que o usuário fizer login, ele será encontrado pelo external_id em vez do endereço de e-mail. (Observe que isso não funciona se você definir o parâmetro require_activation no payload do DiscourseConnect como true.)

O Discourse tem bons mecanismos de fallback para a maioria dos casos extremos. Existem problemas relacionados a usuários com várias contas e endereços de e-mail que podem gerar erros. Alguns detalhes sobre como lidar com esses casos estão aqui: Depuração e correção de problemas comuns do DiscourseConnect.

1 curtida