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 malos 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:
User signs up → AuthProvider creates account → Sends activation code via email ✅
User logs in → AuthProvider verifies credentials → Returns access tokens ✅
✨ Características Clave
| Característica | Lo Que 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 | Enviar códigos de activación | Verificar correo después del registro |
| 🌍 Multilenguaje | Soporte para diferentes idiomas | Aplicaciones internacionales |
El sistema admite múltiples proveedores de autenticación de usuarios: inicio de sesión + contraseña y OAuth.
Ejemplo de Flujo de Autenticación con Verificación de Correo
1. User enters email + password
↓
2. auth() called
↓
3. OneEntry verifies credentials
(Compares hashed passwords)
↓
4. Returns authentication token
(JWT or session token)
↓
5. Token stored client-side
(localStorage, cookie, memory)
↓
6. Token sent with requests
(Authorization header)
↓
7. Token validated by server
(Checks expiration, signature)
📋 Lo Que Necesitas Saber
Proveedores de Autenticación
OneEntry admite diferentes formas de autenticación:
- Correo Electrónico (el más común) - correo electrónico/contraseña tradicional
- 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 electrónico).
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), configurado en el panel de administración
- Usado para solicitudes de API
- De corta duración por seguridad
-
Token de Renovació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 | Lo Que Hace |
|---|---|
| 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 activas de usuario. |
| 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 de usuario. |
| logoutAll() | Cierre de sesión de la cuenta de usuario en todos los dispositivos. |
| oauth() | 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
- Renovar tokens expirados
- Enviar tokens con solicitudes de API
¿Cómo mantengo a los usuarios conectados después de actualizar la página?
Configura el SDK con saveFunction:
const { AuthProvider } = defineOneEntry("your-url", {
token: "your-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 proveedores OAuth en el administrador de OneEntry, luego usa el método oauthSignUp().
¿Cómo manejo errores?
Envuelve las llamadas en try/catch:
try {
// Success!
} catch (error) {
// Error!
}
¿Qué sucede cuando expira el token de acceso?
El SDK utiliza automáticamente el token de renovació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( "your-project-url", { "token": "your-app-token" });
🔗 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