Это можно сделать с помощью DiscourseConnect (при этом Discourse выступает в роли провайдера аутентификации): Use Discourse as an identity provider (SSO, DiscourseConnect).
Я ещё не пробовал это, но параметр prompt может оказаться полезным в вашем случае:
prompt: Еслиprompt=none, то запрос SSO рассматривается как запрос «просто проверка». Если браузер/устройство уже авторизованы в Discourse, система вернёт успешный ответ SSO с информацией об аутентификации пользователя, как обычно. Если браузер/устройство не авторизованы, то Discourse не предложит пользователю войти в систему и сразу вернёт ответ SSO с параметромfailed=trueвместо информации о пользователе. Это предоставляет механизм проверки, авторизован ли пользователь, не перенаправляя его к диалогу входа, если он не авторизован.