Introducción
Autenticación y registro de usuarios simplificados.
🎯 ¿Qué hace este módulo?
El módulo AuthProvider se encarga de todo lo relacionado con la autenticación de usuarios: iniciar sesión, registrarse, gestión de contraseñas y mantener la sesión iniciada de forma segura.
Piénsalo como el guardia de seguridad de tu aplicación: verifica quién es quién, permite la entrada a los usuarios autorizados y mantiene a los intrusos fuera.
📖 Explicación Simple
Cuando los usuarios quieren:
- 👤 Registro de Usuario - Crear nuevas cuentas de usuario
- 🔐 Autenticación - Inicio de sesión y gestión de sesiones
- 🔑 Cambiar contraseña
- 🚪 Cerrar sesión de forma segura
- ✉️ Verificar correo electrónico con códigos de activación
- 🔒 Seguridad - Hashing de contraseñas, gestión de tokens
...¡este módulo hace todo el trabajo pesado!
El problema de construir la gestión de autenticación de usuarios desde cero:
❌ Sin hashing de contraseñas
❌ Sin validación
❌ Sin verificación de duplicados
❌ Sin verificación de correo electrónico
❌ Comparación de contraseñas insegura
❌ Sin gestión de sesiones
❌ Sin limitación de tasa
Problemas:
- 🔒 Inseguro - Sin hashing de contraseñas, vulnerable a ataques
- 📋 Sin validación - Se pueden almacenar datos incorrectos
- 🔄 Sin autenticación - Sin sesiones ni tokens
- 💾 Sin persistencia - Datos perdidos al reiniciar
La solución de AuthProvider:
✅ Bueno - Gestión de autenticación segura
OneEntry automáticamente:
- Hashes la contraseña de forma segura
- Valida el formato del correo electrónico
- Verifica duplicados
- Almacena datos de usuario de forma persistente
- Proporciona tokens de autenticación
Cómo funciona:
El usuario se registra → AuthProvider crea la cuenta → Envía el código de activación por correo electrónico ✅
El usuario inicia sesión → AuthProvider verifica las credenciales → Devuelve los tokens de acceso ✅
✨ Características Clave
| Característica | Qué Hace | Ejemplo de Uso |
|---|---|---|
| 🔐 Registro de Usuario | Crear nuevas cuentas de usuario | Formulario de registro |
| 🚪 Inicio/Cierre de Sesión | Autenticar usuarios | Página de inicio de sesión |
| 🔑 Gestión de Contraseñas | Cambiar y restablecer contraseñas | Flujo de olvido de contraseña |
| 🎫 Gestión de Tokens | Mantener a los usuarios conectados de forma segura | Sesiones de auto-renovación |
| ✉️ Verificación de Correo Electrónico | Enviar códigos de activación | Verificar correo después del registro |
| 🌍 Multilenguaje | Soporte para diferentes idiomas | Aplicaciones internacionales |
Flujo de Autenticación
1. El usuario ingresa correo electrónico + contraseña
↓
2. Se llama a auth()
↓
3. OneEntry verifica las credenciales
(Compara contraseñas hasheadas)
↓
4. Devuelve el token de autenticación
(JWT o token de sesión)
↓
5. Token almacenado del lado del cliente
(localStorage, cookie, memoria)
↓
6. Token enviado con las solicitudes
(Encabezado de autorización)
↓
7. Token validado por el servidor
(Verifica expiración, firma)
📋 Lo Que Necesitas Saber
Proveedores de Autenticación
OneEntry admite diferentes formas de autenticación:
- Correo Electrónico (el más común) - autenticación tradicional con correo/contraseña
- Teléfono (SMS) - autenticación a través del número de teléfono
- Social (OAuth) - Google, Facebook, etc.
Cada proveedor tiene un marcador (por ejemplo, email para el proveedor de correo).
Tokens Explicados de Forma Simple
Cuando un usuario inicia sesión, recibe dos tokens:
-
Token de Acceso 🎫 - Como un boleto de cine (expira rápidamente, ~15 minutos)
- Usado para solicitudes API
- De corta duración por seguridad
-
Token de Actualización 🔄 - Como un pase de temporada (dura más)
- Usado para obtener nuevos tokens de acceso
- Se mantiene válido durante días/semanas
¿Por qué dos tokens? ¡Seguridad! Si alguien roba el token de acceso, expira pronto.
Campos del Formulario
Al registrar o actualizar usuarios, envías datos del formulario con:
marker- Nombre del campo (por ejemplo, "email", "password", "firstName")type- Tipo de dato (por ejemplo, "string", "number", "image")value- El valor real
📊 Tabla de Referencia Rápida - Métodos Comunes
| Método | Qué Hace | Cuándo Usar |
|---|---|---|
| auth() | Permite autenticar usuarios. | |
| changePassword() | Cambio de contraseña del usuario. | |
| checkCode() | Verificación del código de activación del usuario. | |
| generateCode() | Obtener el código para activar al usuario. | |
| getActiveSessionsByMarker() | Obtener datos de sesiones de usuario activas. | |
| getAuthProviderByMarker() | Obtener un objeto de proveedor de autenticación por marcador. | |
| getAuthProviders() | Obtener todos los objetos de proveedores de autenticación. | |
| logout() | Cierre de sesión de la cuenta del usuario. | |
| logoutAll() | Cierre de sesión de la cuenta del usuario en todos los dispositivos. | |
| oauthSignUp() | Registro de usuario (autorización) a través de OAUTH. | |
| refresh() | Actualizar tokens de usuario. | |
| signUp() | Registro de usuario. |
❓ Preguntas Comunes (FAQ)
¿Necesito gestionar los tokens manualmente?
¡No! El SDK gestiona los tokens automáticamente. Solo llama a los métodos y el SDK se encarga de:
- Almacenar tokens
- Actualizar tokens expirados
- Enviar tokens con solicitudes API
¿Cómo mantengo a los usuarios conectados después de actualizar la página?
Configura el SDK con saveFunction:
const { AuthProvider } = defineOneEntry("tu-url", {
token: "tu-token",
auth: {
refreshToken: localStorage.getItem('refreshToken'),
saveFunction: (token) => localStorage.setItem('refreshToken', token)
}
});
¿Cuál es la diferencia entre login y email?
login- puede ser correo electrónico O nombre de usuario (lo que acepte tu proveedor de autenticación)email- siempre es una dirección de correo electrónico
¿Puedo usar inicio de sesión social (Google, Facebook)?
¡Sí! Configura los proveedores de OAuth en el administrador de OneEntry, luego usa el método oauthSignUp().
¿Cómo manejo errores?
Envuelve las llamadas en try/catch:
try {
// ¡Éxito!
} catch (error) {
// ¡Error!
}
¿Qué sucede cuando expira el token de acceso?
El SDK utiliza automáticamente el token de actualización para obtener un nuevo token de acceso. ¡Tus usuarios permanecen conectados sin problemas!
¿Es seguro?
¡Sí! OneEntry utiliza:
- 🔒 Cifrado HTTPS
- 🎫 Tokens JWT (estándar de la industria)
- 🔄 Tokens de acceso de corta duración
- 🔐 Hashing seguro de contraseñas
- ✉️ Verificación de correo electrónico
Más información sobre la interfaz de usuario del módulo https://doc.oneentry.cloud/docs/users/auth_provider
Definición del módulo AuthProvider
const { AuthProvider } = defineOneEntry( "tu-url-del-proyecto", { "token": "tu-token-de-aplicación" });
🔗 Documentación Relacionada
- Módulo de Usuarios - Gestionar perfiles y datos de usuarios
- Módulo de Formularios - Crear formularios de registro/inicio de sesión
- Módulo de FormData - Manejar envíos de formularios