SSO - 초기 업데이트 이후 커스텀 이미지가 다시 업데이트되지 않음

저희는 SSO를 구현한 PHP/Laravel 플랫폼에 Discourse를 통합하고 있습니다. 사용자들의 커스텀 프로필 사진은 한 번만 업데이트됩니다. 그러나 Laravel 플랫폼에서 프로필 사진을 변경해도, 로그아웃 후 다시 로그인해도 Discourse에서 커스텀 사진이 다시 업데이트되지 않습니다.

'avatar_force_update’를 true로 전달했음에도 불구하고, 커스텀 아바타 사진이 덮어쓰기되지 않습니다.

상황 업데이트입니다

프로필 사진 URL이 SSO 기록에 업데이트된 것을 확인할 수 있지만, 로그아웃 후 다시 로그인해도 디스커스에 새로운 프로필 이미지가 반영되지 않습니다.

브라우저를 새로고침하면 어떨까요?

discourse_connect_overrides_avatar 사이트 설정이 활성화되어 있나요?

답변해 주셔서 감사합니다. 브라우저를 새로고침하거나 시크릿 모드로 열거나, 심지어 로그아웃 후 다시 로그인해도 업데이트되지 않습니다.

앞서 언급했듯이, 처음 한 번만 업데이트됩니다. 예를 들어

  • 새 사용자가 아바타를 가지고 있고 SSO를 통해 처음 Discourse에 연결하면 아바타가 업데이트됩니다.
  • 또는 사용자가 처음에는 아바타가 없고 플랫폼에서 아바타를 업데이트하면, 그 경우 Discourse에 반영됩니다.
  • 하지만 사용자가 이미 아바타를 하나 가지고 있는 상태에서 플랫폼에서 새 아바타로 업데이트하면, 다시 로그아웃/로그인하거나 다른 브라우저로 시도해도 Discourse에서는 업데이트되지 않습니다. SSO 기록에서 프로필 사진 URL이 업데이트된 것을 확인할 수 있지만, 아바타는 업데이트되지 않습니다.

답변해 주셔서 감사합니다, Renato! 다른 체크박스는 하나도 체크되어 있지 않습니다.

상세 로깅을 활성화하고 로그를 확인하여 SSO 시스템이 아바타 정보를 전송하는지 살펴볼 수 있습니다.

discourse connect overrides avatar 설정을 활성화하고, Discourse에서 로그아웃한 후 다시 로그인해 보는 것이 도움이 될 수 있습니다. SSO 페이로드에 avatar_force_update 파라미터가 true로 설정되어 있는 한, 해당 설정이 활성화되지 않아도 아바타가 업데이트될 수 있는 것이 정상적인 동작이라고 확신합니다. 다만 이 부분을 처리하는 코드는 다소 복잡합니다: discourse/app/models/discourse_connect.rb at 2ff3f44b957268718e03554fb25d485e1d449ed5 · discourse/discourse · GitHub.

해당 설정을 활성화할 수 없거나, 현재 무슨 일이 일어나고 있는지 궁금하다면 확인해 볼 또 다른 사항은 avatar_force_update 파라미터에 전달하는 값이 Discourse에 의해 부울 true로 해석되고 있는지 확인하는 것입니다. 일부 프레임워크(특히 WordPress)에서는 부울 값이 0 또는 1로 변환됩니다. 이 문제를 우회하기 위해 Discourse는 SSO 페이로드에서 문자열 "true"를 부울 값으로 수용합니다. 이는 사용자 관리자 페이지에 표시되는 SSO 기록에서 avatar_force_update 필드의 값을 확인함으로써 이를 검증할 수 있습니다. 또는 Jay가 언급한 상세 로깅(verbose logging) 설정을 활성화하여 확인할 수도 있습니다.