멀티사이트 네트워크에서 플러그인을 설정하는 방법에 대한 문서가 최신 상태가 아닙니다. WP Discourse 플러그인 설치 및 설정 가이드를 정리하고 업데이트할 좋은 기회입니다.
멀티사이트 네트워크에서 SSO 클라이언트 기능을 사용하려면 플러그인을 네트워크 수준에서 구성해야 합니다. 네트워크 대시보드에서 Discourse 링크를 클릭하여 이를 수행할 수 있습니다:
Discourse 네트워크 페이지에서 ‘멀티사이트 구성 활성화’ 옵션을 선택하세요. 그런 다음 연결 설정(Connection Settings) 섹션에 Discourse URL, API 키, 게시 사용자 이름(Publishing Username)을 입력하세요. 페이지 하단으로 스크롤하여 옵션 저장(Save Options) 버튼을 클릭하세요. 페이지 상단에 'Discourse에 연결되었습니다!'라는 메시지가 표시되어야 합니다.
멀티사이트 네트워크의 사이트에서 Discourse를 SSO 제공자로 사용하려면 Discourse 네트워크 페이지 하단으로 스크롤하여 ‘SSO 클라이언트 활성화’ 옵션을 선택하세요. 또한 SSO 비밀 키(SSO Secret Key) 설정에 키를 추가하세요. 옵션을 다시 저장하세요.
이제 Discourse 사이트로 이동하여 비밀 키를 Discourse의 sso provider secrets 사이트 설정에 복사하세요. SSO 제공자 도메인으로 * 기호를 입력하세요. 해당 설정이 저장되면 다음과 유사한 형태가 되어야 합니다:
이제 Discourse에서 enable sso provider 옵션을 선택하세요.
이러한 설정이 완료되면, 네트워크의 모든 사이트에서 WP Discourse SSO / SSO Client 탭으로 이동하면 다음과 유사한 페이지로 이동해야 합니다:
빠른 테스트를 위해 ‘로그인 링크 추가’ 및 ‘이메일로 기존 사용자 동기화’ 옵션을 선택하세요. 그런 다음 WordPress 사이트에서 로그아웃하세요. wp-login.php 페이지에 표시되는 ‘Discourse로 로그인’ 링크를 클릭하여 다시 로그인할 수 있어야 합니다.
기본 WordPress 로그인 페이지를 사용하지 않는 경우, 사이트의 게시물에 [discourse_sso_client] 쇼트코드를 복사해 넣어 보세요. 이 쇼트코드는 로그인되지 않은 사용자만 페이지에 마크업을 표시합니다. 또한 다음 형식으로 링크를 구성하여 로그인 링크를 만들 수도 있습니다:
<a href="https://example.com/?discourse_sso=1&redirect_to=https://example.comt/">Discourse로 로그인</a>
이렇게 하면 사용자가 Discourse를 통해 사이트에 로그인한 후 redirect_to 파라미터 값으로 설정한 WordPress 페이지로 리디렉션됩니다.
디버깅 결과를 바탕으로, Discourse 네트워크 페이지에서 ‘SSO 클라이언트 활성화’ 옵션이 활성화되지 않은 것으로 보입니다. 해당 옵션이 활성화되어 있는지 확인해 주시고, 여전히 문제가 발생하면 알려 주세요.
SSO 클라이언트가 작동하지 않도록 막고 있던 코드를 찾은 것은 정확하지만, 그 조건은 잘못 작성되었습니다:
if ( empty( $this->options['sso-client-enabled'] ) || 1 !== intval( $this->options['sso-client-enabled'] ) )
if ( empty( $this->options['sso-client-enabled'] ) )로 단순화되어야 합니다. 플러그인의 다른 모든 부분에서 사용되는 패턴입니다.


