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ê também pode ler:
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.
Comentários