Discourse Connect(SSO)를 이용해 아바타, 사용자 이름, 이름을 업데이트하는 방법?

https://forum.mycoralapp.com에서 Discourse SSO를 설정할 수 있었습니다.

첫 로그인 시 이메일, 이름, 사용자 이름, 아바타를 포함한 사용자를 생성하는 데에는 문제가 없습니다.

하지만 문제는, 우리 쪽(앱)에서 정보가 변경된 후 이를 어떻게 업데이트할 수 있는가입니다. 로그아웃 후 SSO로 다시 로그인하면서 다른 이름, 사용자 이름, 사진을 전송했지만 기존 값들이 그대로 유지됩니다. 관리자 설정에서 아래 항목들을 체크했는데, 적어도 아바타는 덮어써야 할 것 같은데 아무 변화가 없습니다:

이름과 사용자 이름은 항상 변경 가능한가요? 왜 “아바타” 옆에 함께 언급되지 않는 건가요? 실제로는 아무것도 변경되지 않습니다.

앱에서 실행 중인 Discourse Connect 코드를 공유해 주시겠어요? 정보가 올바르게 전송되지 않는 것 같습니다.

이런 식으로요: Here is some PHP code and you'd do similar for iOS and Android. Remember to intercept the URL request in WebView! · GitHub

계정을 올바른 정보와 함께 생성하는 것에는 충분합니다. 하지만 이후 로그인 시에는 해당 정보가 덮어쓰기되지 않습니다.

이 문서에 따르면 Rails 앱에 들어가서 SiteSetting.discourse_connect_overrides_avatar 같은 설정을 해야 한다고 합니다. 이 내용이 오래된 지침 때문인지 모르겠지만, 관리자 제어판에는 "이름 덮어쓰기"나 “사용자 이름 덮어쓰기” 같은 항목조차 없습니다.

@EGreg 이 문제에 대한 해결책을 찾았나요?
저도 자체 호스팅된 Discourse에서 동일한 문제를 겪고 있습니다.
‘username 오버라이드’ 설정이 활성화되어 있음에도 불구하고, SSO 구현 전에 이미 존재했던 기존 계정에 대해서는 SSO 로그인 시 username이 오버라이드되지 않는 것 같습니다.

@pfaffman 님이 도와주셔서 작동하는 것 같습니다. 한 번 더 확인해야 할 것 같습니다. 제이?

미안해요. 기존 계정이 어떻게 연결되는지, 그리고 이름이 변경되는지 제 머리 속으로 정확히 떠오르지 않아서 다른 주제에서 답변하지 못했어요.

이 주제의 첫 게시글(OP)을 살펴보니, 스크린샷에서 auth overrides username 설정이 활성화되어 있지 않은 것으로 보입니다. DiscourseConnect가 사용자 이름을 덮어쓰려면 해당 설정이 활성화되어 있어야 합니다. 설정 페이지에서 이 세 가지 설정이 DiscourseConnect와 관련이 있음을 더 명확하게 표시할 수 있다면 좋겠습니다:

  • auth overrides email
  • auth overrides username
  • auth overrides name

또한, 사용자가 Discourse에서 로그아웃한 후 DiscourseConnect를 통해 다시 로그인하도록 하십시오. 사용자가 Discourse에서 로그아웃하지 않으면 변경 사항이 적용되지 않습니다. 이 문제를 우회하려면 사용자를 대신하여 sync_sso 루트에 API 호출을 수행할 수 있습니다: Sync DiscourseConnect user data with the sync_sso route.

모두 감사합니다.
다른 사용자 이름으로 다시 시도해 보니 작동했습니다.
Discourse의 사용자 이름 규칙과 관련이 있다는 걸 파악했어요. 새 사용자 이름이 밑줄(_)로 시작해서 Discourse 규칙상 유효하지 않았고, 그래서 포럼에 반영되지 않았던 것 같습니다.