사용자가 외부 앱에 있을 때 로그인 버튼을 클릭하면 Discourse의 SSO 제공자 플로우를 거쳐 다시 외부 앱으로 돌아옵니다. 이 외부 앱은 사용자 데이터를 포함한 세션을 저장할 수 있습니다. 사용자가 Discourse에서 로그아웃하면 웹훅을 통해 외부 앱의 세션을 삭제할 수 있습니다. 확실하지는 않지만, 웹훅 헤더는 X-Discourse-Event: user_logged_out이라고 생각합니다.
수정: 외부 사이트에서 로그아웃하는 것은 Discourse API를 통해 수행됩니다.
Discourse에 사용자가 로그인되어 있는지 묻는 대신, 외부 앱에 물어볼 수 있습니다. 제 경우, 외부 사이트에서 로그인 버튼을 제거하는 등의 용도로만 사용하고 있습니다.
나중에 제 코드를 다시 확인해 볼 수 있습니다. 오랫동안 코드를 보지 못했지만, 아마도 그런 방식으로 동작했을 것 같습니다.