我们已为论坛配置了 SSO 登录,但用户头像图标并未按预期更新:
当在 SSO 提供商中更改头像时,我们会向 Discourse 服务器发送以下负载:
$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。
请问我们是否遗漏了什么?