⏱️ 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.