Пользователи Discourse выходят из системы — как исправить?

Хм. Когда пользователи посещают форумы и читают темы и т.д., если они выполняют какое-либо действие (create_post, create_topic, edit_post и т.п.), я получаю сообщение через вебхук. Это информирует основной сайт о том, что пользователь активен, поэтому я могу обновить значение «Последний клик» в его сессии, предотвращая выход из системы. Всё должно работать как надо. Всё отлично.

Однако, если участник просто читает сообщения в течение какого-то времени… время бездействия в Discourse сбрасывается каждый раз, когда он что-то делает (что хорошо), но мой основной сайт никогда не получает сообщений от вебхуков, указывающих на активность пользователя. Поэтому после часа бездействия (кажется, что он зашёл на форумы и отошёл от компьютера) основной сайт считает, что сессия истекла, и выводит его из системы.

Кажется, здесь есть пробел в логике. Для правильной реализации SSO не должен ли быть способ для Discourse сообщать мне, активна ли сессия пользователя (даже если он просто читает)? Возможно, Discourse должен отправлять пинг каждые 5 минут, если участник активен, но не генерирует никаких других сообщений вебхуков.

Или, может быть, когда мой сайт считает, что сессия пользователя истекла, мне следует обратиться к Discourse и спросить, активен ли он там. Есть ли способ сделать это? (Я видел Is there an endpoint to check if a user is logged in - #3 by pfaffman, но не совсем понимаю, подходит ли это для моих нужд, а /session/current.json отсутствует в документации API.) Однако это приведёт к огромному количеству вызовов API — на моём сайте каждую минуту из-за неактивности выводится ~15–20 пользователей, и для каждого из них потребуется вызов (и, возможно, более одного вызова, если у меня нет локального кэша их ID в Discourse).

Друзья, что вы думаете или советуете?