Ouvir chave de API de usuário revogada via MessageBus?

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! :slight_smile:

revogar uma chave não vai desconectar todas as sessões. Acho que você vai precisar desconectar explicitamente as pessoas para que elas recebam essa mensagem.