멀티사이트 DiscourseConnect 제공자 아바타 버그

문제
멀티사이트 환경에서 DiscourseConnect Provider가 페이로드 내 user_avatar에 대해 잘못된 URL을 반환합니다.

DiscourseConnect가 프로바이더로 작동할 때, 반환되는 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일 후 자동으로 닫혔습니다. 새로운 답변은 더 이상 허용되지 않습니다.