안녕하세요, 저는 Discourse를 커뮤니티 사이트에 통합하고 있습니다. 해당 사이트에서는 이미 회원들이 서로를 "차단"할 수 있는 기능이 있습니다. 따라서 제 사이트의 회원이 SSO를 통해 Discourse에 로그인할 때, 차단된 외부 ID 목록도 함께 전달하고 싶습니다. 아마도 Discourse 쪽에서는 이 목록을 “Muted users” 필드에 넣으면 될 것 같습니다…
질문은 다음과 같습니다. SSO가 발생할 때 "음소거"할 사용자 목록을 전달할 수 있나요? SSO 동안 전달할 수 있는 사용자 메타데이터에는 제한된 목록이 있는 것 같고, 음소거된 사용자는 그 선택지 중 하나인 것 같지 않습니다.
만약 불가능하다면, 이 기능을 구현하려면 웹훅을 설정해야 할 것 같습니다. 웹훅에서 user_logged_in 이벤트를 수신하면 Discourse API를 사용하여 음소거된 사용자 목록을 전달할 수 있을 텐데요… 제 이해가 맞나요? (만약 맞다면: API에서 해당 호출은 어디에 있나요? 찾을 수가 없었습니다!)
샘, 네, 당장의 문제를 해결하기 위해 웹훅 user_logged_in 이벤트에 응답만 하면 되니 문제없어. 고마워.
SSO를 통해 어떤 데이터를 전달할 수 있는지에 대해 네가 왜 그렇게 생각하는지 이해해. 내 사이트와 Discourse를 더 깊이 통합하면서 SSO 구현 방식을 어떻게 선택했는지에 대한 이해도 깊어지고 있어. 지금은 잘 작동하고 있지만, 사실 모든 “SSO 오버라이드…” 체크박스를 하나의 일반적인 체크박스, 예를 들어 “SSO가 모든 사용자 속성을 관리합니다”(또는 비슷한 표현)로 통합하는 것이 흥미롭지 않을까 생각해.
이 아이디어는 이 전역 SSO 체크박스를 켜면, 내가 일관성을 유지해야 할 유일한 것은 external_id라는 것이다. Discourse에 이것이 항상 고유하고, 항상 동일한 사용자를 식별하며, 절대 변경되지 않을 것이라고 약속하는 것이지. 그렇게 되면 SSO 요청으로 원하는 모든 필드를 전달하고, 사용자를 내 데이터베이스에서 완전히 로드할 수 있을 거야.