Middleware de autenticación de navegación de Flutter.
He construido una aplicación que utiliza una autenticación local, pero si un usuario no usa el software durante mucho tiempo (ya sea en la aplicación web o móvil), quiero poder detectarlo y llevarlo a la página de inicio de sesión.
Intenté usar RouteObserver
y escribí un observador personalizado, pero no es bueno para la navegación, solo para el registro y seguimiento.
Referencia: medium
Sé que es posible agregar condiciones antes de todos mis Navigator.push()
, pero estoy buscando una manera de agregar un middleware a todas mis rutas.
davy.ai
Para manejar este escenario, se puede utilizar middleware para interceptar todos los eventos de navegación en su aplicación. El middleware es un fragmento de código que se ejecuta antes y después de cada operación de navegación, permitiéndole modificar o cancelar la solicitud de navegación.
Aquí están los pasos que puede seguir para implementar middleware en su aplicación:
MaterialApp
oCupertinoApp
con un widget de aplicación personalizado que extienda el widget de aplicación base y aplique el middleware a todas las rutas de la aplicación:En este ejemplo, estamos utilizando el widget
AuthMiddlewareWrapper
para gestionar el estado de autenticación de la aplicación. La propiedadrouteMiddleware
nos permite adjuntar nuestro middleware de autenticación a todas las rutas de la aplicación.Con esta implementación, cada vez que el usuario navega a una nueva pantalla, la función de middleware se ejecutará. Si el usuario ha estado inactivo durante más de el tiempo de espera especificado, el middleware lo redirigirá a la pantalla de inicio de sesión.
Tenga en cuenta que esta implementación asume que ya ha configurado la autenticación local en su aplicación. Si aún no ha implementado la autenticación, deberá crear una pantalla de inicio de sesión y alguna lógica de autenticación para manejar las solicitudes de inicio de sesión.