Uma sessão é uma maneira de armazenar informações (em variáveis) a serem usadas em várias requisições HTTP, para simular um “estado” na navegação das páginas.

O Laravel possui com uma variedade de drivers de backends de sessão que são acessados por meio de uma API simples e unificada. O suporte a backends de gerenciamento de sessão populares, como memcached, redis e bancos de dados, está incluído.

No que diz respeito ao tempo limite da sessão, você pode aumentar o lifetime da sessão em Laravel fazendo alguns ajustes no arquivo session.php.

Você pode facilmente aumentar lifetime da sessão em Laravel 5, Laravel 6, Laravel 7, Laravel 8 e Laravel 9.

Quanto tempo dura uma sessão em Laravel

Por padrão, está definido como 120 minutos (2 horas). Se você comentar ou excluir a configuração da sessão do Laravel, sua sessão poderá funcionar corretamente usando a sessão configurada em nos valores de configuração do php.

Qual é o tempo de tempo de sessão razoável

Uma sessão não deve durar mais de 30 minutos. Você pode ler o seguinte artigo para entender melhor o porquê: Como alterar o tempo limite da sessão do PHP.

Configurando o tempo da sessão de Laravel

O arquivo de configuração da sessão do seu aplicativo é armazenado em config/session.php. Certifique-se de revisar as opções disponíveis neste arquivo.

Por padrão, o Laravel está configurado para usar o driver de sessão de arquivo, que funcionará bem para muitos aplicativos. Se o seu aplicativo for balanceado em vários servidores da Web, você deve escolher um armazenamento centralizado que todos os servidores possam acessar, como redis ou um banco de dados relacional.

A opção Configuração do driver da sessão define onde os dados da sessão serão armazenados para cada solicitação. Laravel entrega vários ótimos drivers em sua instalação:

  • file - As sessões são armazenadas em armazenamento/estrutura/sessões.
  • cookie - As sessões são armazenadas em cookies seguros e criptografados.
  • database - As sessões são armazenadas em um banco de dados relacional.
  • memcached / redis - As sessões são armazenadas em um dessas ewstruturas rápidas e baseadas em cache.
  • dynamodb - As sessões são armazenadas no AWS DynamoDB.
  • array - As sessões são armazenadas em uma matriz PHP e não serão persistidas.

A configuração da sessão vitalícia será feita da mesma maneira, apesar do driver da sessão configurado.

Se você deseja aumentar ou diminuir o tempo de vida da sua sessão, poderá fazê-lo facilmente no arquivo de configuração no Laravel. No arquivo config/session.php, existe uma opção lifetime para definir o tempo em minutos. No arquivo de configuração da sessão, também existe uma opção para definir o driver, tempo limite, expire_on_close e criptografar etc.

A configuração de vida útil da sessão também pode ser feita usando o arquivo .env:

SESSION_LIFETIME = 30

Que tal definir uma vida eterna para as sessões? Bem, basicamente, você não pode definir sessão vitalícia para sempre, mas pode definir minutos para o tempo de expiração da sessão.

Portanto, se você deseja definir para 1 ano a expiração da sessão, pode calcular quantos minutos representam 1 ano e depois configurar em .env este valor ou configurá lo diretamente em config/session.php com uma fórmula:

60 * 24 * 365 = 525600 // 1 ano

No arquivo .env:

SESSION_LIFETIME = 525600

No arquivo config/session.php:

<?php
  
use Illuminate\Support\Str;
  
return [
  
    .....
  
    'lifetime' => 1 * (60 * 24 * 365),
  
    .....
  
]

Conclusão

O tempo correto de vida útil da sessão para aplicativos Laravel oferece aos desenvolvedores mais controle sobre quanto as sessões devem durar e melhoram a segurança do aplicativo.

Referências