Middleware de Autenticación
Middleware para manejar la autenticación de usuarios
Configuración
El middleware de autenticación ayuda a gestionar el acceso a las rutas de tu aplicación según el estado de autenticación del usuario. A continuación, se detalla cómo implementar un middleware global en tu nuevo módulo para asegurar que solo los usuarios autenticados puedan acceder a ciertas rutas.
Creación del Middleware
Crea un archivo llamado auth.global.ts en el directorio middleware de tu proyecto.
Explicación del Middleware
Importación del Store de Usuario
Se accede al store de usuario mediante useNuxtApp(), que proporciona acceso al estado global de la aplicación.
Verificación de Ruta
Se verifica si la ruta de destino es la página de inicio de sesión (/login).
Redirección Basada en el Estado de Autenticación
- Usuario Autenticado:
- Si el usuario está autenticado y trata de acceder a la página de inicio de sesión, se redirige a la página principal (
/). - Si está autenticado y accede a cualquier otra página, se permite el acceso.
- Usuario No Autenticado:
- Si el usuario no está autenticado y trata de acceder a cualquier página que no sea la de inicio de sesión, se redirige a la página de inicio de sesión (
/login). - Si no está autenticado y accede a la página de inicio de sesión, se permite el acceso.
Comportamiento
- Acceso Restringido: El middleware garantiza que los usuarios no autenticados sean redirigidos a la página de inicio de sesión si intentan acceder a rutas protegidas. Los usuarios autenticados son redirigidos a la página principal si intentan acceder a la página de inicio de sesión.
- Excepciones: La página de inicio de sesión (
/login) es accesible para usuarios no autenticados, mientras que los usuarios autenticados no tienen acceso a esta página y son redirigidos automáticamente a la página principal.
Este middleware proporciona una forma efectiva de gestionar el acceso a las rutas en función del estado de autenticación del usuario, mejorando la seguridad y la experiencia del usuario en tu aplicación.