Business Trial을 사용 중이며 이 글을 참고하고 있습니다. LWC를 Discourse 래퍼로 사용하고 있습니다. LWC는 HTML 마크업에 태그를 추가할 수 없으므로, myDiscourseAcc.discourse.group/javascripts/embed.js에서 JavaScript 라이브러리를 다운로드하여 Salesforce org의 정적 리소스로 저장하고 LWC에 로드했습니다.
iframe은 표시되지만 항상 로그인 페이지와 “답변하려면 로그인” 버튼만 표시됩니다. 하지만 포럼과 모든 기능을 표시해야 하는데 이것이 불가능합니다.
- LWC에서 window.DiscourseEmbed에 대해 discourseUrl, discourseEmbedUrl, fullApp(값을 true로 설정)을 지정했습니다.
- SF 커뮤니티 사이트가 Admin → Embedding → hosts에 추가되었습니다. Full App Mode가 활성화되어 있습니다.
- Discourse Connect는 정상적으로 작동하며 필요한 설정도 구성되어 있습니다. SF 커뮤니티를 통해 Discourse에 접근할 수 있고, 로그인 시 커뮤니티 사용자로 Discourse에 자동으로 로그인할 수 있기 때문에 이렇게 결론 내렸습니다.
- Salesforce org에서 Discourse가 신뢰할 수 있는 URL(Trusted URLs)에 추가되었습니다.
- 커뮤니티에 로그인할 때 SF 커뮤니티 로그든 Discourse 로그든 오류가 발생하지 않습니다.
- 커뮤니티를 로드할 때 URL을 통해 SSO와 SIG를 얻기 위해 Discourse로 리다이렉트하고 다시 돌아오는 설정을 할 수 있습니다.
- 커스텀 버튼이나 표시된 Discourse iframe 내부의 “답변하려면 로그인” 버튼을 클릭하면 Discourse를 별도의 창이나 탭에서 열 수 있습니다.
- Salesforce Community와 제 Discourse 인스턴스는 서로 다른 도메인에 있습니다.
하지만 그럼에도 불구하고 임베드된 iframe 내부에는 로그인 페이지가 계속 열려 있습니다. 확신은 없지만 문제가 쿠키와 관련이 있을 수도 있습니다.