通过 MessageBus 监听已撤销的 User API Key?

我正在使用 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 });
  /* 吊销时,仅从存储中删除账户数据 */
});

谢谢! :slight_smile:

撤销密钥不会注销所有会话。我认为你需要显式地让人们退出,这样他们才能收到该消息。