Session (Sesiones)
Las sesiones permiten almacenar informacion del usuario a traves de multiples peticiones HTTP. Laravel soporta varios drivers y proporciona una API unificada para trabajar con ellos.
Uso basico
// Almacenar datos en la sesion
session(['cart_count' => 5]);
session()->put('user_preferences', ['theme' => 'dark', 'lang' => 'es']);
// Obtener datos
$value = session('cart_count');
$value = session('missing_key', 'default');
$prefs = session()->get('user_preferences');
// Flash data (solo disponible en la siguiente peticion)
session()->flash('success', 'Perfil actualizado correctamente.');
return redirect()->back()->with('success', 'Guardado');
// Eliminar datos
session()->forget('cart_count');
session()->flush(); // Eliminar todo
En controladores
public function update(Request $request)
{
// Actualizar perfil...
$request->session()->regenerate(); // Regenerar ID (seguridad)
return redirect()->route('profile')
->with('status', 'Perfil actualizado.');
}
Configuracion
El driver de sesion se configura en .env con SESSION_DRIVER. Para produccion se recomienda redis o database. Las sesiones de archivo funcionan bien para aplicaciones pequenas.
Laravel gestiona automaticamente la sesion mediante cookies seguras y encriptadas, protegiendo contra session fixation y otros ataques.