React Native으로 Discourse를 백엔드로 사용하는 모바일 애플리케이션을 개발하고 있습니다(REST API를 통해 통신).
인증된 요청을 보내기 위해 User API Keys 플로우를 사용하고 있으며, MessageBus를 통해 다양한 이벤트를 수신하고 있습니다(다행히 이 부분은 성공적으로 구현했습니다).
현재 API Key가 폐기(revoke)된 경우를 처리하는 로직을 구현하고 있으며, 이 경우 사용자에게 "세션이 만료되었습니다"와 유사한 메시지를 표시할 예정입니다.
이를 위해 Discourse 프론트엔드에서 사용하는 것으로 보이는 /logout/${current_user.id} 채널에 구독을 시도해 보았지만, 성공하지 못했습니다.
다른 채널에 구독해야 하는지, 아니면 해당 정보가 현재 MessageBus를 통해 전송되지 않는 것일까요?
관련 코드:
const messageBus = MessageBus.getInstance();
/* message bus에 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 });
/* 폐기된 경우, 스토리지에서 계정 데이터만 삭제 */
});
감사합니다! ![]()