Discourse(REST API経由で通信)を搭載したReact Nativeモバイルアプリケーションを作成しています。
認証されたリクエストを行うためにUser API Keysフローを使用し、さまざまなイベントをリッスンするためにMessageBusを使用しています(幸いにも正常に実装できました)。
現在、APIキーが取り消された場合のケースを実装しており、「セッションが期限切れました」のようなメッセージをユーザーに表示しようとしています。
そのために、/logout/${current_user.id}にサブスクライブしようとしましたが(Discourseがフロントエンドで使用しているもののようです)、成功しませんでした。
別のチャネルにサブスクライブする必要がありますか、それともその種の情報は現在MessageBus経由で送信されていませんか?
関連コード:
const messageBus = MessageBus.getInstance();
/* メッセージバスにUser-Api-Keyヘッダーを追加 */
messageBus.setToken(currentAccount.apiKey);
messageBus.subscribe(`/logout/${currentAccount.id}`, () => {
console.log(`Logging out account ${currentAccount.username}`);
alert("Your session has expired. Please log in again.");
signOut({ reason: REASON_SESSION_EXPIRED });
/* 取り消された場合、ストレージからアカウントデータを削除するだけ */
});
よろしくお願いします! ![]()