Multisite DiscourseConnect 提供程序头像错误

问题
在多站点环境中,DiscourseConnect Provider 在 payload 中为 user_avatar 返回了不正确的 URL。

DiscourseConnect 作为 provider 时,它返回的 avatar_url 格式丢失了 ‘uploads’ 和多站点主机的名称。

例如:

预期:https://cdn.cdnprovider.com/uploads/dbname/original/1X/1e653a3bc23b6b07017f5635128da0b353489e60.jpg'
实际:https://cdn.cdnprovider.com/original/1X/1e653a3bc23b6b07017f5635128da0b353489e60.jpg`

代码位于 此处,它正在从上传中重建 URL。

      if current_user.uploaded_avatar.present?
        base_url =
          Discourse.store.external? ? "#{Discourse.store.absolute_base_url}/" : Discourse.base_url
        avatar_url =
          "#{base_url}#{Discourse.store.get_path_for_upload(current_user.uploaded_avatar)}"
        sso.avatar_url = UrlHelper.absolute Discourse.store.cdn_url(avatar_url)
      end

user.uploaded_avatar.url 似乎给出了正确的结果。

3 个赞

好的,我来看看 :eyes:

3 个赞

将通过以下方式修复:

4 个赞

此主题已在 2 天后自动关闭。不再允许回复。