我正在使用 Discourse(通过 REST API 进行通信)创建一个使用 React Native 的移动应用程序。
我使用 User API Keys 流程进行身份验证请求,并使用 MessageBus 监听不同的事件(幸运的是已成功实现)。
目前我正在实现 API 密钥被吊销的情况,并因此告诉用户类似“您的会话已过期”的消息。
为此,我尝试订阅 /logout/${current_user.id}(这似乎是 Discourse 在前端使用的),但没有成功。
我是否应该订阅另一个频道,或者这种信息目前没有通过 MessageBus 传输?
相关代码:
const messageBus = MessageBus.getInstance();
/* 将 User-Api-Key 标头添加到 message bus */
messageBus.setToken(currentAccount.apiKey);
messageBus.subscribe(`/logout/${currentAccount.id}`, () => {
console.log(`正在注销账户 ${currentAccount.username}`);
alert("您的会话已过期。请重新登录。");
signOut({ reason: REASON_SESSION_EXPIRED });
/* 吊销时,仅从存储中删除账户数据 */
});
谢谢! ![]()