Avatar仅在创建时同步

你好!

我正在使用这个插件来同步来自 Django 站点的用户,但头像仅在创建时同步。如果用户在 Django 中更改了头像,它不会在 Discourse 中同步。

事实上,在 Discourse 的 managed_authenticator.rb 中,如果用户已经设置了自定义头像,retrieve_avatar 会提前返回:

  def retrieve_avatar(user, url)
    return unless user && url
    return if user.user_avatar.try(:custom_upload_id).present?
    Jobs.enqueue(:download_avatar_from_url, url: url, user_id: user.id, override_gravatar: false)
  end

我是否错过了什么,或者 discourse-openid-connect 无法在登录时更新头像?

另外,我还有一个关于“网站”、“地点”和“简介”的问题。DiscourseConnect 会在登录时同步它们,openidconnect 也可以做到吗?它们都在 oidc claims 中得到支持。

祝好!

2 个赞

我也是,使用 v3.1.3……

是的,我一直在努力标准化头像。\n\n我曾希望使用我们 IdP (Entra) 的自定义图片声明来包含一个头像托管的 URL,该托管不具有像通用 graph.microsoft 那样的 bearer token 身份验证下载 download_avatar_from_url 的问题。但测试表明,该插件会存储 /userinfo 并忽略 JWT 图片声明,所以无论如何这都是一条死胡同。

我才意识到我应该在这里发帖,但我为此提交了一个 PR:FEATURE: managed auth can override avatars by lewisakura · Pull Request #34123 · discourse/discourse · GitHub

2 个赞

感谢 @lewisakura 的贡献,您的 PR 现已合并!

1 个赞

此主题已自动关闭,已有 12 天。不再允许回复。