En este mini tutorial aprenderás como controlar la inactividad de un usuario dentro de un sitio web o aplicación.
Esto este particularmente útil si estuviésemos creando una aplicación que manejara datos financieros o delicados, en estos casos es importante que la sesión de un usuario no quede abierta por descuido. Hay que siempre tener en cuenta que el usuario podrías estar en un computador de uso compartido y siempre existe la posibilidad de que haya gente malintencionada alrededor de el.
Para este tutorial se da por entendido que la gema de Device se encuentra instalada y operativa en nuestro proyecto.
¿Cómo lograr controlar la inactividad de un usuario en una aplicación web hecha en Rails?.
Pasos:
Paso 1: Asignar el tiempo dentro del initializer de devise
Hay que descomentar la línea config.timeout_in = 10.seconds y asignar el tiempo necesario que se encuentra en el initializer devise.rb (los 10.second, son elementos que se modifican, en este ejemplo lo dejé en 10 segundos, pueden ser 5 minutos, 1 hora, etc, obviamente en Ingles – second, minutes, hours)
Paso2: Agregar :timeoutable en el modelo de usuarios
Dentro del archivo models/user.db después de todos los able agregados por devise (como por ejemplo validatable) podemos agregar el símbolo :timeoutable
Paso 3: Reinicio el Servidor:
Siempre que se modifican los archivos dentro de initializers hay que reiniciar el servidor.
4.- Ahora cada vez que exista inactividad en la aplicación por 10 segundos, me cerrará y redireccionará al login de nuestra app en Rails. Una vez que te logueas la aplicación es capaz de redireccionar al lugar dónde quedó el usuario antes de que cerrara la conexión.