WordPress에서 모든 기기에서 로그아웃해도 Discourse는 로그아웃되지 않음

WordPress는 WP-Discourse 플러그인을 통해 SSO 제공자로 설정되어 있으며, 특정 예외적인 경우에서 그룹 할당 등의 일관성을 보장하기 위해 사용자를 로그아웃해야 하는 상황이 있습니다.

사용자가 우리가 말하는 내용을 이해하지 못할 때, WordPress 관리자 화면에서 해당 사용자의 세션을 로그아웃하는 방식을 사용합니다. 하지만 이 경우 Discourse에서는 로그아웃이 되지 않습니다.

WordPress에서 함수나 기타 방식으로 Discourse 로그아웃 신호를 연결하여 이 문제를 해결할 수 있는 방법이 있을까요?

워드프레스 관리자 화면을 통해 사용자를 로그아웃할 때 호출되는 워드프레스 액션이 있는지 알고 계신가요? WP 디스커스 플러그인은 clear_auth_cookie 액션에 연결되어 워드프레스와 디스커스 간에 사용자가 직접 수행한 로그아웃을 동기화합니다. 사이트 관리자가 사용자를 로그아웃할 때도 작동할 수 있는 다른 액션이 있을까요?

이 부분에 대해 조금 더 알아보고 다시 말씀드리겠습니다.

wp_ajax_destroy_sessions 함수를 사용하고 $sessions->destroy_all();에서 세션 토큰 조작을 수행하고 있다고 의심됩니다. 이 함수에 clear_auth_cookie를 어떻게 연결(hook)할 수 있을까요?

저도 그 함수가 사용되고 있다고 생각합니다.

WordPress 코드를 빠르게 살펴봤지만, 이를 작동시키는 명확한 방법을 찾지 못했습니다. 만약 이 작업을 매우 자주 수행하지 않는다면, Discourse 관리자는 사용자 관리 페이지 상단에 표시되는 “로그아웃” 버튼을 클릭하여 사용자의 Discourse 로그아웃을 처리할 수 있습니다. SSO를 통해 사용자가 다시 로그인하도록 강제하려면, 사용자의 Discourse 로그아웃을 수동으로 처리한 다음 WordPress에서도 로그아웃을 처리하면 됩니다.

한번 시도해 볼게요. 이 전략이 실패하면 몇 달 후에 이 주제를 다시 올릴 수도 있겠네요.