Código de exemplo:
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);
}
});
Ao usar juramento, depois que o provedor redireciona para meu aplicativo, o Hub dispara um signIn
evento. No entanto, a signInUserSession
propriedade é null
quando o evento é disparado, mas obtém um valor algum tempo depois (dentro de 100 ms). Isso não parece ocorrer ao usar Auth.signIn(email, password)
diretamente; signInUserSession
é preenchido quando o evento é disparado.
O que está acontecendo aqui e como posso contornar isso? Atualmente, tenho um atraso explícito no código, o que é um hack terrível.
Hub.listen
para alimentar um canal de eventos. No entanto, também tentei executar o código de exemplo acima diretamente de uma saga e tive o mesmo problema.