¿Por qué es Importante el Cierre de Sesión por Inactividad?
En el mundo del desarrollo web, una aplicación segura es una que gestiona correctamente los tiempos de sesión . El cierre de sesión por inactividad en Laravel se utiliza principalmente para preservar el sistema y los datos del usuario.
Implementación de Cierre de Sesión Automático en Laravel
La funcionalidad puede lograrse utilizando el middleware nativo de Laravel. Middleware es un tipo de software que ofrece servicios a aplicaciones más allá de lo que ofrece el sistema operativo.
php artisan make:middleware AutoLogout
En el directorio app/Http/Middleware, se encontrará el nuevo archivo “AutoLogout.php”. El siguiente código verifica si el usuario ha estado inactivo durante más de un período de tiempo especificado. Si ha expirado, el middleware cerrará la sesión del usuario.
public function handle($request, Closure $next) { if (Auth::check()) { $lastActivity = Session::get('lastActivity'); $timeOut = 1800; if ($lastActivity + $timeOut < time()){ Session::flush(); return redirect(‘login’); } Session::put('lastActivity',time()); } return $next($request); }
Activación del Cierre de Sesión por Inactividad
Para activar el middleware de cierre de sesión automático, es necesario agregar este middleware al archivo "Kernel.php", que se encuentra en su directorio app/Http. Este archivo se utiliza para configurar la pila de solicitudes de su aplicación y define una lista de middleware de HTTP que aplican todas las solicitudes a su aplicación.
protected $middleware = [ ... AppHttpMiddlewareAutoLogout::class, ... ]
Personalizando el Tiempo de Espera
Si desea cambiar este tiempo de espera, simplemente cambie el valor de la variable $timeOut en el middleware.
$timeOut = 1800;
Beneficios del Cierre de Sesión Automático
Esta característica puede ser especialmente útil en aplicaciones que contienen información sensible del usuario. La seguridad siempre debe ser una prioridad, y el cierre de sesión por inactividad es una manera efectiva de mejorar la seguridad en cualquier aplicación Laravel.