
Olá!
Em ambientes corporativos, muitas vezes surge a necessidade de controlar de forma mais rígida o tempo de sessão dos usuários. No caso do Nextcloud, isso normalmente aparece quando o cliente quer garantir que, após determinado período sem atividade, o usuário seja forçado a se autenticar novamente.
Nos últimos dias, precisei analisar esse comportamento em detalhes e aproveitei para documentar aqui, no estilo direto que sempre publico no blog, como o Nextcloud realmente trata as sessões e quais parâmetros interferem nesse fluxo.
Como o Nextcloud mantém a sessão ativa
A primeira coisa importante: não basta olhar a documentação e assumir que o comportamento será óbvio. Assim como já acontece em outros componentes do Nextcloud, alguns parâmetros interagem entre si e geram efeitos que não são tão evidentes à primeira vista.
Os três principais elementos que controlam o ciclo da sessão são:
1. session_lifetime
É o tempo máximo que a sessão pode permanecer ativa sem atividade do usuário.
Porém, existe um detalhe que costuma confundir administradores:
O Nextcloud envia uma requisição periódica (heartbeat) enquanto a aba do navegador está aberta. Esse heartbeat é considerado atividade, então a sessão não expira enquanto o usuário mantiver o Nextcloud aberto, mesmo sem fazer nada.
Ou seja: deixar a aba parada não equivale a inatividade.
2. session_keepalive
Esse parâmetro controla justamente o heartbeat.
Se estiver como true (padrão), o Nextcloud renova a sessão silenciosamente.
Quando configurado como false, o heartbeat é desativado — e aí sim o session_lifetime passa a valer “na prática”.
Com isso, uma aba parada não renova a sessão e o Nextcloud expira após o tempo configurado.
3. auto_logout
Força o logout mesmo que existam requisições de background acontecendo.
O Nextcloud tenta evitar desconectar usuários que estão apenas lendo algo (há uma verificação simples de interação do mouse), mas se não houver atividade real, o logout acontece.
Configuração para expirar sessão após 30 minutos
Para um comportamento realmente rígido — expirar após 30 minutos sem uso — a combinação recomendada é:
'session_lifetime' => 30 * 60,
'remember_login_cookie_lifetime' => 0,
'session_keepalive' => false,
'auto_logout' => true,
Nesse cenário:
- o usuário tem 30 minutos de janela;
- não existe “lembrar login”;
- a aba parada não renova a sessão;
- e o logout acontece mesmo com tráfego interno do cliente.
Esse é um comportamento muito mais próximo do esperado em ambientes de segurança reforçada.
Considerações finais
O Nextcloud oferece bastante flexibilidade para controle de sessão, mas é preciso entender como cada parâmetro interfere no comportamento real. O simples ajuste de session_lifetime não garante expiração se o heartbeat continuar ativo.
Documentei aqui porque esse tipo de detalhe costuma passar despercebido e muitas vezes gera a impressão de que “o Nextcloud não respeita o tempo de sessão”. Na prática, ele respeita — mas depende da combinação correta dos ajustes.

Deixe um comentário