HTTP Session no Laravel: O protocolo HTTP é stateless (sem estado), o que significa que cada requisição de um usuário é tratada isoladamente, sem memória das interações anteriores. Para simular um “estado” e manter dados do usuário (como login, carrinho de compras, ou preferências) através de múltiplas requisições, o Laravel utiliza o sistema de Sessões HTTP.
No Laravel 12, o sistema de Sessões oferece uma API fácil e segura para armazenar dados no lado do servidor, vinculando-os a um usuário específico através de um cookie de sessão.
1. ⚙️ Configuração e Drivers de Sessão
A configuração principal da sessão é definida no arquivo config/session.php.
A. Driver de Sessão
O driver define onde os dados da sessão serão fisicamente armazenados no servidor:
| Driver | Vantagem | Uso Típico |
file | Padrão, simples de usar. | Projetos pequenos a médios, desenvolvimento. |
database | Persistência, mais fácil de gerenciar backups. | Aplicações que precisam de rastreamento de sessão. |
redis ou memcached | Alta performance, escalabilidade. | Aplicações grandes, alto tráfego. |
array | Não persiste. | Testes unitários. |
PHP
// config/session.php
'driver' => env('SESSION_DRIVER', 'file'), // Usa 'file' por padrão
'lifetime' => 120, // Tempo de vida em minutos (2 horas)
'expire_on_close' => false, // A sessão expira quando o navegador é fechado?
B. Cookie de Sessão
O Laravel envia um cookie para o navegador do usuário contendo apenas o ID da Sessão. O browser envia esse ID em todas as requisições subsequentes, permitindo que o Laravel recupere os dados da sessão armazenados no servidor.
2. 📝 Armazenando e Acessando Dados
Você pode interagir com a sessão usando a função helper session() ou a Facade Session.
A. Armazenar Dados (put)
Armazena um valor com uma chave:
PHP
// Armazena 'João' na chave 'nome'
session()->put('nome', 'João');
session()->put('email', '[email protected]');
B. Recuperar Dados (get)
Recupera o valor de uma chave. Você pode fornecer um valor padrão se a chave não existir:
PHP
$nome = session()->get('nome'); // 'João'
$idade = session()->get('idade', 'Não Informado'); // Se 'idade' não existir, retorna 'Não Informado'
C. Verificar Existência (has)
Verifica se uma chave existe e não é null:
PHP
if (session()->has('email')) {
// A chave 'email' está presente na sessão.
}
D. Armazenar e Recuperar Imediatamente (pull)
Recupera o valor da chave e a remove da sessão em uma única operação:
PHP
$nomeRemovido = session()->pull('nome');
// Agora, session()->has('nome') retorna false.
3. 🗑️ Removendo e Encerrando Sessões
A. Remover Item Específico (forget)
Remove uma ou mais chaves específicas da sessão:
PHP
session()->forget('nome');
// Para remover múltiplas chaves:
session()->forget(['nome', 'email']);
B. Finalizar a Sessão (flush)
Limpa todos os dados da sessão do usuário:
PHP
session()->flush();
// A sessão do usuário é completamente esvaziada.
C. Regenerar ID (regenerate)
Gera um novo ID de sessão para a requisição atual. Isso é útil após o login para prevenir Session Fixation.
PHP
session()->regenerate();
4. ⚡ Flash Data (Dados Temporários)
Flash Data são dados armazenados na sessão apenas para a próxima requisição HTTP e automaticamente removidos depois. Isso é ideal para mensagens de notificação após um redirecionamento.
A. Armazenar Flash Data
PHP
// No Controller, após um POST bem-sucedido
return redirect('/dashboard')->with('success', 'Post criado com sucesso!');
// Equivalente a: session()->flash('success', '...');
B. Acessar Flash Data
Na View de destino (dashboard), você acessa o dado normalmente:
PHP
@if (session()->has('success'))
<div class="alert alert-success">
{{ session('success') }}
</div>
@endif
✅ Conclusão HTTP Session no Laravel
HTTP Session no Laravel: O sistema de sessões do Laravel transforma o HTTP stateless em uma experiência stateful, permitindo que você mantenha dados do usuário entre múltiplas requisições. A chave é usar a API session() para armazenar (put), recuperar (get) e limpar (forget/flush) dados. Além disso, o Flash Data (with()) é essencial para mensagens de feedback temporárias, garantindo uma aplicação interativa e segura.
Mas antes de dominar o Laravel, se for o seu caso, toda jornada tem um início. Vamos entender quais são os conhecimentos básicos necessários para aproveitar ao máximo este poderoso framework. Para iniciar seus estudos no Laravel, você precisará dominar as seguintes tecnologias:
E se você gosta do nosso conteúdo, não deixe de contribuir adquirindo os serviços e produtos dos nossos apoiadores e empresas que somos associados:















