Contexto
Uma sessão pode terminar por inatividade, pelo limite máximo definido pela política de segurança ou por uma mudança de risco. Para a pessoa, porém, o problema não é apenas precisar entrar novamente: uma expiração silenciosa pode interromper uma tarefa, apagar dados e gerar a impressão de que o produto falhou.
A experiência deve tratar dois momentos diferentes. Antes do vencimento, avise com tempo suficiente e permita continuar quando a política autorizar. Depois do vencimento, explique o que aconteceu, proteja informações sensíveis e ofereça um caminho direto para autenticar novamente e retomar o contexto seguro.
Defina no servidor os limites de inatividade e de duração total da sessão conforme o risco. Quando a sessão estiver próxima de expirar e puder ser prorrogada, apresente um aviso claro com o tempo restante e uma ação principal como “Continuar sessão”. Ofereça também uma saída explícita, como “Sair agora”, quando fizer sentido.
Use um diálogo modal somente quando a decisão precisar interromper a tarefa. O título deve dizer o que está acontecendo; o texto deve explicar o motivo, a consequência e o que cada ação fará. O contador precisa refletir o prazo real do servidor, inclusive entre abas, sem depender apenas de um temporizador local.
Se a sessão já terminou, substitua o aviso por uma mensagem de estado: informe que ela expirou por segurança ou inatividade, remova dados sensíveis da tela e leve a pessoa para uma nova autenticação. Preserve, quando for seguro, o caminho de retorno e os dados não sensíveis ainda não enviados. Após autenticar, restaure a tarefa e confirme o que foi recuperado.
Trate a extensão como uma ação confirmada pelo servidor. Uma movimentação passiva do mouse, uma aba em segundo plano ou um clique após o vencimento não devem criar a falsa impressão de que a sessão continua válida.
Porque isso importa?
O encerramento automático reduz o risco de uma conta permanecer aberta em um dispositivo abandonado. OWASP e NIST recomendam que os limites sejam aplicados no servidor e que a reautenticação seja proporcional ao risco, porque controles apenas no navegador podem ser contornados ou ficar dessincronizados.
Ao mesmo tempo, a expiração pode excluir trabalho e impor uma barreira maior a pessoas que precisam de mais tempo para ler, digitar, localizar documentos ou operar tecnologias assistivas. A WCAG orienta avisar sobre limites de tempo e permitir sua extensão quando o prazo não for essencial.
Comunicar os dois estados — “vai expirar” e “expirou” — reduz surpresa e ajuda a pessoa a escolher. Preservar o contexto após a reautenticação também evita retrabalho sem enfraquecer a proteção da sessão.
Quando usar?
- Em áreas autenticadas com limite de inatividade.
- Em sistemas com dados pessoais, financeiros ou corporativos.
- Em formulários e tarefas longas.
- Quando a sessão pode ser estendida com segurança.
- Quando a reautenticação permite retomar o fluxo.
- Em produtos usados em dispositivos compartilhados.
Quando evitar?
- Quando não existe sessão autenticada.
- Para prazos que não têm relação com segurança.
- Como aviso repetitivo longe do vencimento.
- Quando o prazo pode ser removido sem risco.
- Quando a extensão contrariar uma política obrigatória.
- Como substituto para salvamento automático.
Recomendações
Faça
- Avise antes do vencimento.
- Mostre o tempo restante.
- Explique a consequência.
- Priorize “Continuar sessão”.
- Ofereça saída explícita.
- Sincronize com o servidor.
- Preserve o contexto seguro.
- Restaure após autenticar.
- Teste múltiplas abas.
Evite
- Não expire em silêncio.
- Não use erro genérico.
- Não dependa só do navegador.
- Não renove com movimento passivo.
- Não anuncie cada segundo.
- Não apague trabalho seguro.
- Não exponha dados após expirar.
- Não prometa extensão impossível.
- Não empilhe modais.