O problema de logout de várias abas que ninguém o avisou sobre

Imagine isto: você está usando seu aplicativo da web favorito. Você tem três guias abertas – uma com relatórios, uma editando um documento e uma configuração de verificação. Na guia Configurações, você clica em Logout. Você acha que está pronto … mas quando você volta para as outras guias, surpresa! Eles ainda parecem conectados. Você pode clicar em botões, digitar formulários e talvez até ver dados privados. Este é o problema da sessão de várias abordagens. E é mais comum do que você pensa. Por que esse problema acontece que os navegadores não informam automaticamente todas as guias que você registrou em outra. Então você termina com: – TAB A -> Você está oficialmente conectado (o servidor sabe, a UI sabe) – TAB B -> Sua interface do usuário não sabe o que aconteceu e ainda não foi atualizado: um estado estranho e quebrado que pode confundir usuários ou mesmo expor dados privados. Exemplo da vida real Imagine uma ferramenta de design com uma assinatura:- TAB 1: Você está usando um recurso premium.- Tab 2: Você cancela sua assinatura em Configurações.- O que acontece? A guia 1 ainda permite usar o recurso premium até a atualização. Ruim para os negócios (recursos gratuitos) e ruim para o usuário (“acesso repentino negado” ao salvar). Todo mundo perde. Como os desenvolvedores correm o truque é simples: faça suas guias conversem umas com as outras. Event.NewValue === ‘Loggedout’) {// pode recarregar, redirecionar ou atualizar Window.Location.Reload (); Digite o modo de saída do modo de tela cheia agora, se uma guia fizer login e definir authstatus = “loggedout”, as outras guias sabem instantaneamente. Melhor abordagem: em vez de sempre recarregar (que pode ser irritante), você pode mostrar uma mensagem como: “Você foi registrado” → Redirecionar para a página de login. Coisas para lembrar isso só funciona para o mesmo domínio (yourapp.com). O evento de armazenamento dispara apenas em outras guias, não na que fez a alteração. Para alguns aplicativos, você também pode sincronizar os dados da sessão entre as guias, mas esse é um trabalho extra. A linha inferior, se você estiver criando um aplicativo da Web com contas, não esqueça o caso de várias abordagens. Os usuários não agradecerão quando funcionar … mas eles perceberão quando não funcionar. Porque a única coisa pior do que um logout quebrado está trabalhando dentro de uma sessão de fantasmas que morreu há 20 minutos. 👻

Fonte

Você pode ter perdido