Stiamo integrando Discourse con la piattaforma Php/Laravel dove abbiamo implementato l’SSO. L’immagine personalizzata degli utenti viene aggiornata solo una volta. Tuttavia, se cambio l’immagine del profilo nella piattaforma Laravel, l’immagine personalizzata non viene nuovamente aggiornata in Discourse nemmeno dopo aver effettuato nuovamente il logout e il login.
Anche se ho passato ‘avatar_force_update’ come true, l’immagine personalizzata dell’avatar non viene sovrascritta.
Vedo l’URL dell’immagine del profilo aggiornato nel record SSO, tuttavia la nuova immagine del profilo non viene visualizzata in Discourse anche dopo aver effettuato il logout e il login.
Grazie per la risposta. Se ricarico il browser o apro in incognito o anche mi disconnetto e mi riconnetto di nuovo, non viene aggiornato.
Come menzionato, viene aggiornato solo la prima volta. Ad esempio
Un nuovo utente ha un avatar e si connette a Discourse per la prima volta utilizzando SSO, l’avatar viene aggiornato
Oppure un utente non ha inizialmente un avatar e aggiorna l’avatar nella piattaforma e in tal caso viene riflesso in Discourse
Ma un utente ha un avatar e se ne aggiorna uno nuovo nella piattaforma, non viene aggiornato in Discourse anche se mi disconnetto/riconnetto di nuovo, o provo in un browser diverso. Posso vedere l’URL dell’immagine del profilo aggiornato nel record SSO, ma l’avatar non viene aggiornato.
Potrebbe valere la pena abilitare l’impostazione discourse connect overrides avatar, disconnettersi da Discourse e quindi riconnettersi. Sono abbastanza sicuro che ci si aspetti che l’avatar possa essere aggiornato senza che tale impostazione sia abilitata, purché il parametro avatar_force_update sia impostato su true nel payload SSO. Il codice che gestisce questo è piuttosto complesso, tuttavia: discourse/app/models/discourse_connect.rb at 2ff3f44b957268718e03554fb25d485e1d449ed5 · discourse/discourse · GitHub.
Se non è possibile abilitare tale impostazione, o si è semplicemente curiosi di sapere cosa sta succedendo, un’altra cosa da controllare è assicurarsi che il valore che si sta passando per il parametro avatar_force_update venga interpretato come il booleano true da Discourse. Esistono framework (in particolare WordPress) in cui i valori booleani vengono convertiti in 0 o 1. Per aggirare questo problema, Discourse accetterà la stringa "true" come valore booleano nel payload SSO. Probabilmente è possibile confermarlo esaminando il valore del campo avatar_force_update nel record SSO visualizzato nella pagina di amministrazione dell’utente. Oppure abilitando l’impostazione di logging dettagliato menzionata da Jay.