Como usar o Discourse Connect (SSO) para atualizar avatar, nome de usuário e nome?

Consegui configurar o Discourse SSO em https://forum.mycoralapp.com

E consigo criar o usuário pela primeira vez, com seu próprio e-mail, nome, nome de usuário e avatar.

Mas a questão é, como posso atualizá-los depois que eles mudam do nosso lado (no aplicativo)? Eu faço logout e login com SSO, enviando um nome, nome de usuário e foto diferentes, mas os antigos permanecem. Também desmarquei essas coisas no admin, o que parece que deveria substituir pelo menos o avatar, mas nada acontece:

O nome e o nome de usuário estão sempre disponíveis para serem alterados? Por que não é mencionado ao lado de “avatar”? Na prática, porém, NADA muda.

1 curtida

Você pode compartilhar o código do Discourse Connect que seu aplicativo está executando? Parece que ele não está enviando as informações da maneira correta.

2 curtidas

Algo como isto: Here is some PHP code and you'd do similar for iOS and Android. Remember to intercept the URL request in WebView! · GitHub

É bom o suficiente para criar a conta, com as informações corretas. Mas não a substitui posteriormente em logins subsequentes.

De acordo com isto eu tenho que entrar no aplicativo Rails e configurar coisas como SiteSetting.discourse_connect_overrides_avatar. Não sei se é porque são instruções antigas, mas o painel de controle de administração nem sequer contém coisas como “substituir nome” e “substituir nome de usuário”.

2 curtidas

@EGreg você encontrou uma solução para isso ainda?
Estou enfrentando o mesmo problema com um discourse auto-hospedado.
O login SSO não parece substituir o nome de usuário para contas existentes que existiam antes da implementação do SSO, mesmo que a configuração ‘substituir nome de usuário’ esteja habilitada.

@pfaffman me ajudou e acho que funcionou. Tenho que verificar. Jay?

1 curtida

Desculpe. Não sei nada sobre como as contas existentes são conectadas e se elas são renomeadas ou eu teria respondido no outro tópico.

1 curtida

Olhando o OP deste tópico, vejo que a configuração auth overrides username não está habilitada na captura de tela. Essa configuração precisa estar habilitada para que o DiscourseConnect substitua o nome de usuário. Seria ótimo se a página de configurações deixasse mais óbvio que essas três configurações estão relacionadas ao DiscourseConnect:

  • auth overrides email
  • auth overrides username
  • auth overrides name

Além disso, certifique-se de que os usuários estejam saindo do Discourse e, em seguida, fazendo login novamente via DiscourseConnect. Se eles não saírem do Discourse, a alteração não terá efeito. Você pode contornar esse problema fazendo uma chamada de API para a rota sync_sso em nome do usuário: Sync DiscourseConnect user data with the sync_sso route.

3 curtidas

Obrigado a todos.
Tentei novamente com um nome de usuário diferente e funcionou.
Eu imaginei que estava relacionado às regras de nome de usuário do Discourse. Como o novo nome de usuário começava com um sublinhado, ele era inválido de acordo com as regras do Discourse e esse poderia ser o motivo pelo qual ele não foi refletido no fórum.

2 curtidas