모든 설정이 올바르게 되어 있는 것으로 보입니다. 이 사이트가 일반적인 WordPress 사이트인가요, 아니면 멀티사이트(multisite) 환경의 일부인가요? 네트워크에서 메인 사이트 외 다른 사이트와의 로그아웃 동기화에 문제가 있을 수 있습니다.
화면 녹화 영상을 확인해 본 결과, Discourse 사이트가 login required(로그인 필요)로 설정되어 있는 것으로 보입니다. 현재 일어나는 일은 다음과 같습니다. Discourse가 SSO 요청을 담아 WordPress 사이트로 리디렉션하고, WordPress에 이미 로그인된 상태이므로 자동으로 로그인 처리가 됩니다. 정상적인 동작이라면 로그아웃된 사용자로 WordPress 로그인 페이지에 도달해야 합니다.
Discourse와의 로그아웃 동기화는 WordPress의 clear_auth_cookie 훅에 의존합니다. 사이트의 다른 플러그인이 이 과정을 방해하고 있을 가능성이 있습니다.
MemberPress에서 무슨 일이 일어나고 있는지 확인해 보고 싶지만, 유료 플러그인입니다. 문서를 살펴본 결과, 플러그인의 옵션 페이지에서 설정할 수 있는 MemberPress 로그아웃 리디렉션 URL이 있는 것 같습니다. 문제가 그 설정과 관련이 있을 수 있습니다.
외부 사이트에서 Discourse 로그아웃 방법을 찾고 있습니다. 문서를 찾아봤는데, 이 게시물에서 언급된 대로 API POST 요청을 보내는 것이 방법인 것 같습니다.
문제는 API 요청을 어떻게 보내야 하는지 잘 이해가 안 되고, 다음 단계로 어떻게 진행해야 할지 막막합니다. Postman을 다운로드해서 실험을 해보고 있지만, 여전히 막막합니다. 필요한 API 요청을 어떻게 생성해야 하는지, 그리고 이후 외부 사이트에 어떻게 구현해야 하는지 잘 모르겠습니다.
이 사이트는 MemberPress를 사용하는 WordPress 사이트이며, 내 Discourse 포럼의 SSO 제공자 역할을 합니다. WordPress에서 로그아웃하면 URL로 리다이렉트할 수 있는데, 이때 Discourse에서도 동시에 로그아웃되도록 하고 싶습니다. 아니면 functions.php에 추가할 수 있는 PHP 함수를 통해 API 요청을 보내는 방식도 가능할까요?
SSO를 위해 WP Discourse 플러그인을 사용하고 계신가요? 그렇다면 WordPress에서 로그아웃하면 Discourse에서도 로그아웃되어야 하지만, WordPress에서 Memberpress 플러그인을 사용할 때 이 기능이 작동하지 않는다는 최근 보고가 있습니다: SSO: Unable to logout. 같은 문제를 겪고 계신가요?
@TGP Discourse의 logout redirect 설정을 https://www.thegearheadproject.com/?request=logout으로 변경해 볼 수 있을까요? www가 없는 요청은 www URL로 리디렉션되는 것 같지만, 리디렉션 시 request=logout 쿼리 파라미터가 유지되지 않는 것으로 보입니다.
이것이 문제를 해결하지는 못할 수 있지만, 원인이 될 가능성을 배제해 보는 것이 좋겠습니다.
@robtech 님, Discourse 사이트에서 로그아웃하면 WordPress 사이트에서도 함께 로그아웃되므로, 이 부분은 정상적으로 작동하고 있는 것으로 보입니다. 제가 발견한 문제는 WordPress에서 Discourse로의 로그아웃 동기화입니다. WordPress 사이트에서 로그아웃해도 Discourse 사이트에서는 로그아웃이 되지 않습니다.
WP Discourse Connection 탭에서 설정한 API 키와 Publishing Username(게시 사용자 이름)이 올바른지 확인해 주시겠습니까? 관리자용 API 키와 사용자 이름을 사용해야 합니다. 가장 쉬운 방법은 사이트의 Master API Key를 사용하고 게시 사용자 이름으로 'system’을 사용하는 것입니다. 이 페이지의 옵션을 저장한 후 “connected to Discourse”(Discourse에 연결됨)라는 알림이 표시되어야 합니다. 이 섹션에는 관리자 자격 증명이 필요하며, 이를 통해 WordPress에서 로그아웃할 때 사용자가 Discourse에서도 로그아웃될 수 있습니다.