iframe를 사용하여 Discourse를 Salesforce Community(Experience Cloud 사이트)에 임베드할 수 있을까요? 가능하면 어떻게 해야 하나요?

Business Trial을 사용 중이며 이 을 참고하고 있습니다. LWC를 Discourse 래퍼로 사용하고 있습니다. LWC는 HTML 마크업에 태그를 추가할 수 없으므로, myDiscourseAcc.discourse.group/javascripts/embed.js에서 JavaScript 라이브러리를 다운로드하여 Salesforce org의 정적 리소스로 저장하고 LWC에 로드했습니다.

iframe은 표시되지만 항상 로그인 페이지와 “답변하려면 로그인” 버튼만 표시됩니다. 하지만 포럼과 모든 기능을 표시해야 하는데 이것이 불가능합니다.

  1. LWC에서 window.DiscourseEmbed에 대해 discourseUrl, discourseEmbedUrl, fullApp(값을 true로 설정)을 지정했습니다.
  2. SF 커뮤니티 사이트가 Admin → Embedding → hosts에 추가되었습니다. Full App Mode가 활성화되어 있습니다.
  3. Discourse Connect는 정상적으로 작동하며 필요한 설정도 구성되어 있습니다. SF 커뮤니티를 통해 Discourse에 접근할 수 있고, 로그인 시 커뮤니티 사용자로 Discourse에 자동으로 로그인할 수 있기 때문에 이렇게 결론 내렸습니다.
  4. Salesforce org에서 Discourse가 신뢰할 수 있는 URL(Trusted URLs)에 추가되었습니다.
  5. 커뮤니티에 로그인할 때 SF 커뮤니티 로그든 Discourse 로그든 오류가 발생하지 않습니다.
  6. 커뮤니티를 로드할 때 URL을 통해 SSO와 SIG를 얻기 위해 Discourse로 리다이렉트하고 다시 돌아오는 설정을 할 수 있습니다.
  7. 커스텀 버튼이나 표시된 Discourse iframe 내부의 “답변하려면 로그인” 버튼을 클릭하면 Discourse를 별도의 창이나 탭에서 열 수 있습니다.
  8. Salesforce Community와 제 Discourse 인스턴스는 서로 다른 도메인에 있습니다.

하지만 그럼에도 불구하고 임베드된 iframe 내부에는 로그인 페이지가 계속 열려 있습니다. 확신은 없지만 문제가 쿠키와 관련이 있을 수도 있습니다.

다음 중 하나를 선택할 수 있습니다:

  1. Discourse와 Salesforce 사이트를 forum.yoursite.comcrm.yoursite.com처럼 동일한 기본 도메인을 공유하도록 이동합니다.

  2. same_site_cookies 값을 Lax에서 None으로 변경합니다. 이는 숨겨진 사이트 설정 사용을 포함합니다.