Estamos integrando o Discourse com a plataforma Php/Laravel, onde implementamos SSO. A imagem personalizada dos usuários está sendo atualizada apenas uma vez. No entanto, se eu alterar a imagem de perfil na plataforma Laravel, a imagem personalizada não é atualizada no Discourse novamente, mesmo após eu sair e entrar novamente.
Mesmo tendo passado ‘avatar_force_update’ como true, a imagem personalizada do avatar não está sendo substituída.
Consigo ver a URL da foto de perfil atualizada no registro SSO, no entanto, a nova imagem de perfil não é refletida no Discourse, mesmo após eu sair e entrar novamente.
Obrigado pela resposta. Se eu recarregar o navegador, abrir em anônimo ou até mesmo sair e entrar novamente, ele não é atualizado.
Como mencionado, ele só é atualizado na primeira vez. Por exemplo:
Um novo usuário tem um avatar e se conecta ao Discourse pela primeira vez usando SSO, o avatar é atualizado.
Ou o usuário não tem um avatar inicialmente e atualiza o avatar na plataforma, e nesse caso ele é refletido no Discourse.
Mas o usuário tem um avatar e se ele atualiza um novo avatar na plataforma, ele não é atualizado no Discourse, mesmo que eu saia/entre novamente ou tente em um navegador diferente. Posso ver o URL da foto de perfil atualizado no registro SSO, mas o avatar não é atualizado.
Pode valer a pena habilitar a configuração discourse connect overrides avatar, sair do Discourse e fazer login novamente. Tenho quase certeza de que é esperado que o avatar possa ser atualizado sem essa configuração habilitada, desde que o parâmetro avatar_force_update seja definido como true na carga útil do SSO. O código que lida com isso é um tanto complexo, no entanto: discourse/app/models/discourse_connect.rb at 2ff3f44b957268718e03554fb25d485e1d449ed5 · discourse/discourse · GitHub.
Se você não puder habilitar essa configuração, ou estiver apenas curioso sobre o que está acontecendo, outra coisa a verificar é garantir que o valor que você está passando para o parâmetro avatar_force_update esteja sendo interpretado como o booleano true pelo Discourse. Existem frameworks (notavelmente o WordPress) onde valores booleanos são convertidos para 0 ou 1. Para contornar esse problema, o Discourse aceitará a string "true" como um valor booleano na carga útil do SSO. Você provavelmente pode confirmar isso olhando o valor do campo avatar_force_update no registro do SSO que é exibido na página de administração do usuário. Ou habilitando a configuração de log detalhado que Jay mencionou.