Estou criando um aplicativo móvel usando React Native com o Discourse (comunicação via API REST).
Utilizo o fluxo de User API Keys para fazer requisições autenticadas e o MessageBus para escutar diferentes eventos (implementado com sucesso, felizmente).
No momento, estou implementando o caso em que a API Key é revogada e, assim, informando ao usuário algo como “Sua sessão expirou”.
Para isso, tentei me inscrever em /logout/${current_user.id} (parece ser o que o Discourse usa no frontend), sem sucesso.
É possível que eu deva me inscrever em outro canal ou que esse tipo de informação não seja transmitido via MessageBus no momento?
Código relevante:
const messageBus = MessageBus.getInstance();
/* Adiciona o cabeçalho User-Api-Key ao message bus */
messageBus.setToken(currentAccount.apiKey);
messageBus.subscribe(`/logout/${currentAccount.id}`, () => {
console.log(`Fazendo logout da conta ${currentAccount.username}`);
alert("Sua sessão expirou. Por favor, faça login novamente.");
signOut({ reason: REASON_SESSION_EXPIRED });
/* Quando revogado, apenas exclua os dados da conta do armazenamento */
});
Obrigado! ![]()