Obrigado por este post, que foi inestimável para configurar um projeto recente que exigia login no Salesforce.
No nosso caso, o aplicativo do Salesforce era uma Comunidade, o que significou que tivemos que alterar alguns dos detalhes acima. Estou postando neste tópico antigo caso ajude mais alguém. Quase me fez perder o juízo por um dia inteiro.
URL de autorização oauth2: https://[NOME_DA_COMUNIDADE].force.com/services/oauth2/authorize
URL de token oauth2: https://[NOME_DA_COMUNIDADE].force.com/services/oauth2/token
Caminho do ID de usuário de retorno de chamada oauth2: id
No entanto, ainda tivemos problemas com erros 403 Forbidden, que eram HTML puro sem estilo e não pareciam muito com um erro do Discourse para mim, o que levou a muita depuração no Salesforce e muita frustração. Mas o problema estava no Discourse.
Proibido
Você não tem permissão para acessar este recurso.
Além disso, ocorreu um erro 500 Internal Server Error ao tentar usar um ErrorDocument para processar a solicitação.
Embora o redirecionamento para a URL de retorno de chamada parecesse funcionar, o console do navegador registrava falhas de autenticação. No final, foi o não definidooauth2 callback user id path que causou a falha de autenticação. Definir como id corrigiu tudo.
Todas as outras configurações como no post anterior.
Obrigado pelas diretrizes. Conseguimos autenticar com sucesso usando o Salesforce, mas encontramos um problema. Nossos objetos/campos do SF parecem não estar sendo transmitidos com sucesso para o Discourse. Logo após um login bem-sucedido no SF no Discourse, parece que o Discourse o trata como um novo usuário e solicita nome de usuário, e-mail e nome, mesmo que esses dados devam vir dos campos json name, email e username do oauth2.
Podemos pedir ajuda para conhecer o formato json dos objetos/campos do SF usados no plugin oauth2? Tentamos object.field, object_field e apenas field. Parece que não há nenhum erro, mas nada está sendo transmitido do SF para o Discourse via json para reconhecer o login como não sendo de um novo usuário do Discourse.