Código de ejemplo:
Hub.listen('auth', event => {
const { event: type, data } = event.payload;
if (type === 'signIn') {
const session = data.signInUserSession;
console.log('SESSION', data.signInUserSession);
setTimeout(() => {
console.log('SESSION', data.signInUserSession);
}, 100);
}
});
Al usar el juramento, después de que el proveedor redirige a mi aplicación, el Hub activa un signIn
evento. Sin embargo, la signInUserSession
propiedad es null
cuando se dispara el evento, pero obtiene un valor algún tiempo después (dentro de 100 ms). Esto no parece ocurrir cuando se usa Auth.signIn(email, password)
directamente; signInUserSession
se llena cuando se dispara el evento.
¿Qué está pasando aquí y cómo puedo solucionarlo? Actualmente, tengo un retraso explícito en el código, que es un hack terrible.
Hub.listen
para alimentar un canal de eventos. Sin embargo, también intenté ejecutar el código de ejemplo anterior directamente desde una saga, y tuve el mismo problema.