Definindo o tempo de expiração no Django Sessions

⏱️ Definindo o tempo de expiração no Django Sessions

Em aplicações web com autenticação, controlar por quanto tempo uma sessão permanece válida é importante para equilibrar segurança e experiência do usuário. O Django oferece mecanismos para definir quando uma Session deve expirar automaticamente.

⏳ O que define a duração da Session?

A configuração SESSION_COOKIE_AGE determina, em segundos, o tempo padrão de duração da sessão.

Esse valor pode ser ajustado conforme as necessidades da aplicação. Sistemas que trabalham com informações sensíveis podem adotar períodos menores, enquanto outros podem utilizar períodos maiores para reduzir a frequência de novos logins.

⚙️ Personalizando a expiração

Além da configuração global, o Django permite definir a expiração individualmente por meio de set_expiry(). O valor pode representar segundos de inatividade, uma data ou horário específico, 0 para expirar o cookie quando o navegador for fechado ou None para retornar à política global.

Um ponto importante é que a leitura da sessão não é considerada atividade para fins de expiração. O Django considera a última modificação da sessão ao calcular sua validade.

🕐 Consultando a expiração

O Django também disponibiliza métodos para consultar informações sobre a validade.

  • ✅ get_expiry_age() retorna a quantidade de segundos até a sessão expirar, enquanto
  • ✅ get_expiry_date() informa a data prevista para a expiração.

🔐 Expiração e segurança

Uma sessão com duração excessiva pode manter uma autenticação válida por mais tempo do que o necessário.

Por isso, o tempo adequado depende do contexto da aplicação, da sensibilidade das informações e do comportamento esperado dos usuários. O Django permite ajustar essa política de forma global ou individual.

🌐 Expirar ao fechar o navegador

Também é possível configurar o cookie da sessão para expirar quando o navegador for fechado, utilizando SESSION_EXPIRE_AT_BROWSER_CLOSE. Essa configuração funciona como uma política global e pode ser sobrescrita individualmente com set_expiry().

🚀 Conclusão

Definir corretamente o tempo de expiração das Sessions é parte importante do gerenciamento de autenticação no Django. Com SESSION_COOKIE_AGE, set_expiry() e os métodos de consulta, é possível controlar a duração das sessões conforme as necessidades da aplicação, equilibrando segurança e usabilidade.

Voltar para Postagens Python / Django Ver no LinkedIn