저희는 특정 폐쇄형 커뮤니티를 위해 여러 서비스를 운영 중이며, 소셜 플랫폼으로 Discourse를 도입하는 것을 검토하고 있습니다. Discourse 인스턴스를 저희 서비스 스위트에 가장 세련되고 기술적으로 자연스럽게 통합하는 최선의 방법이 무엇인지 궁금합니다.
예를 들어, 저희 스위트에는 자체 개발한 서비스 A와 서비스 B, 그리고 OAuth2 SSO 서비스가 포함되어 있습니다.
사용자가 서비스 A 또는 B에서 로그인 버튼을 클릭하면 SSO 서비스로 리다이렉트되어 로그인한 후, 평소처럼 원래 서비스로 돌아옵니다. 쿠키와 세션 관리를 통해 서비스 A에 로그인한 상태라면, 이후 서비스 B를 방문할 때 다시 로그인할 필요가 없습니다(이미 세션이 유지되어 있기 때문이죠).
마찬가지로, SSO 서비스로 로그인한 후 서비스 A 또는 B에서 Discourse 서비스로 자연스럽게 이동할 수 있는 방법을 원합니다. 사용자의 계정이 모든 서비스에 존재한다고 가정합니다. 현재 OAuth2 Discourse 플러그인을 평가해 보았으며, 저희 SSO 서비스와 함께 작동하지만, 사용자가 Discourse를 방문할 때 SSO로 다시 로그인하도록 클릭해야 하는 문제가 있습니다. 서비스 A 또는 B에서 공통 SSO를 통해 로그인할 때 Discourse의 세션도 자동으로 시작할 수 있는 API 호출과 같은 방법이 있을까요?
또한, 위 질문은 임베디드 컴포넌트를 통한 댓글 통합에도 해당됩니다. “공개” Discourse 서비스를 운영하면 댓글 섹션에 문제가 없으며, 댓글이 올바르게 임베드됩니다. 하지만 비공개 Discourse 서비스를 운영할 경우, 사용자가 사전에 Discourse에 로그인하지 않았다면 임베드된 댓글 창에 댓글이 올바르게 표시되지 않는 문제가 발생하며, 이는 무결성 있는 통합을 논할 때 문제가 됩니다.
이러한 문제를 우회할 방법이 있을까요? 실제 호출을 수행하기 전에 토큰 또는 쿠키를 디코딩하여 적절한 사용자를 즉시 인증하고 로그인하는 미들웨어 플러그인을 구축하는 것을 고려하고 있습니다. 이미 그런 플러그인이 존재합니까?
빠른 답변 감사합니다. 하지만 이 방법은 문제를 해결하지 못합니다. 내장된 Discourse 댓글 창이든 Discourse 사이트로 직접 이동하든, 이미 SSO를 통해 '서비스 A’에 로그인된 사용자는 다시 로그인해야 합니다.
두 경우 모두 환영 메시지와 로그인 버튼이 표시됩니다. “환영합니다. 계정이 필요합니다. 기존 회원에게 초대장을 요청하거나 계속하려면 로그인하세요.” 로그인 버튼을 클릭하면 로그인 창이 팝업되며 사용자 이름/비밀번호 또는 OAuth SSO를 통해 로그인하라는 메시지가 표시됩니다. SSO 세션이 아직 활성 상태이므로 SSO의 사용자 이름과 비밀번호를 다시 입력할 필요는 없지만, 사용자가 이런 경험을 하는 것은 원치 않습니다. 사용자가 '서비스 A’에 로그인하면 어떤 버튼도 다시 누르지 않고 자동으로 Discourse에도 로그인되기를 바랍니다.
이를 위해 무엇을 해야 하나요?
참고로 저는 Discourse 버전 2.5.2를 사용하고 있습니다.