Sto creando un’applicazione mobile utilizzando React Native con Discourse (comunicando tramite REST Api).
Utilizzo il flusso User API Keys per effettuare richieste autenticate e MessageBus per ascoltare diversi eventi (implementato con successo fortunatamente).
Al momento sto implementando il caso in cui la API Key viene revocata, e quindi informare l’utente con qualcosa di simile a “La tua sessione è scaduta”.
Per questo ho provato a sottoscrivermi a /logout/${current_user.id} (sembra essere ciò che Discourse utilizza nel frontend), senza alcun successo.
È possibile che debba sottoscrivermi a un altro canale o che quel tipo di informazione non venga attualmente trasmesso tramite MessageBus?
Codice pertinente:
const messageBus = MessageBus.getInstance();
/* Aggiungi l'header User-Api-Key al message bus */
messageBus.setToken(currentAccount.apiKey);
messageBus.subscribe(`/logout/${currentAccount.id}`, () => {
console.log(`Logging out account ${currentAccount.username}`);
alert("La tua sessione è scaduta. Per favore, accedi di nuovo.");
signOut({ reason: REASON_SESSION_EXPIRED });
/* Quando revocata, elimina solo i dati dell'account dallo storage */
});
Grazie! ![]()