Я создаю мобильное приложение на React Native с использованием Discourse (взаимодействие через REST API).
Для выполнения аутентифицированных запросов я использую поток ключей API пользователей, а MessageBus — для прослушивания различных событий (к счастью, это удалось реализовать успешно).
В данный момент я реализую сценарий, когда ключ API отзывается, и нужно сообщить пользователю что-то вроде «Ваш сеанс истёк».
Для этого я попытался подписаться на канал /logout/${current_user.id} (похоже, что именно это использует фронтенд Discourse), но безрезультатно.
Возможно, мне следует подписаться на другой канал, или такая информация в настоящее время не передаётся через MessageBus?
Релевантный код:
const messageBus = MessageBus.getInstance();
/* Добавляем заголовок User-Api-Key для MessageBus */
messageBus.setToken(currentAccount.apiKey);
messageBus.subscribe(`/logout/${currentAccount.id}`, () => {
console.log(`Выход из аккаунта ${currentAccount.username}`);
alert("Ваш сеанс истёк. Пожалуйста, войдите снова.");
signOut({ reason: REASON_SESSION_EXPIRED });
/* При отзыве удаляем только данные аккаунта из хранилища */
});
Спасибо! ![]()