Мы настроили вход через SSO для нашего форума, но иконка аватара пользователя не обновляется так, как мы ожидаем:
При смене аватара в нашем провайдере SSO мы отправляем на сервер Discourse следующий payload:
$encodedPayload = base64_encode(
$decodedPayload
. '&return_sso_url=' . env('DISCOURSE_SSO_URL')
. '&email=' . auth()->user()->email
. '&primary_email=' . auth()->user()->email
. '&external_id=' . auth()->user()->id
. '&name=' . auth()->user()->name
. '&username=' . auth()->user()->nickname
. '&avatar_url=' . auth()->user()->avatar
. '&avatar_force_update=true'
. '&admin=' . (auth()->user()->isAdmin ? 'true' : 'false')
);
Если открыть страницу форума Discourse, аватар не меняется (это ожидаемо), однако он не обновляется даже при перезагрузке соответствующей страницы или переходе на другую (хотя в консоли видно, что новое изображение уже загружено).
Чтобы аватар обновился, необходимо выйти из системы и войти снова.
При смене аватара генерируется новое имя файла, и мы всегда передаём параметр avatar_force_update со значением true.
Не упустили ли мы что-то?