Introducción
La autenticación y el registro de usuarios simplificados.
Más información sobre la interfaz de usuario del módulo https://doc.oneentry.cloud/docs/users/auth_provider
🎯 ¿Qué hace este módulo?
El módulo AuthProvider maneja todo lo relacionado con la autenticación de usuarios: registro, inicio de sesión, cambios de contraseña, códigos de activación por correo electrónico/SMS, OAuth y mantener la sesión activa con tokens de acceso y de actualización. El SDK admite múltiples proveedores de autenticación (inicio de sesión + contraseña y OAuth).
🚀 Inicio Rápido
Inicializa el módulo desde defineOneEntry:
const { AuthProvider } = defineOneEntry( "your-project-url", { "token": "your-app-token" });
Autentica a un usuario contra el proveedor email y lee los tokens devueltos:
// Authenticate against the "email" auth provider.
const result = await AuthProvider.auth("email", {
authData: [
{ marker: "login", value: "example@oneentry.cloud" },
{ marker: "password", value: "12345" },
],
});
// On success the SDK stores the tokens automatically.
console.log(result.accessToken, result.refreshToken);
El primer argumento es siempre el marcador del proveedor (por ejemplo, "email"). Después de un auth() exitoso, el SDK mantiene los tokens y los actualiza por ti.
✨ Conceptos Clave
| Característica | Qué Hace | Ejemplo de Uso |
|---|---|---|
| Registro de Usuarios | 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 recuperar contraseñas | Flujo de contraseña olvidada |
| Gestión de Tokens | Mantener a los usuarios conectados de forma segura | Sesiones de auto-actualización |
| Verificación por Email / SMS / Push | Enviar códigos de activación | Verificar cuenta después del registro |
| OAuth | Inicio de sesión social (Google, etc.) | "Iniciar sesión con Google" |
Flujo de Autenticación
1. User enters email + password
↓
2. auth() is called with the provider marker
↓
3. OneEntry verifies credentials and returns access + refresh tokens
↓
4. The SDK stores the tokens and sends the access token with requests
↓
5. When the access token expires, the SDK uses the refresh token automatically
📋 Lo Que Necesitas Saber
Proveedores de Autenticación
OneEntry admite diferentes formas de autenticación, cada una identificada por un marcador:
- Email (
email) - inicio de sesión tradicional + contraseña - OAuth - Google, Facebook, etc.
Los códigos de activación pueden ser entregados a través de diferentes canales (correo electrónico, SMS o push) mediante el objeto notificationData que pasas a signUp() — phoneSMS y phonePush son canales de entrega para esos códigos, no proveedores de inicio de sesión independientes.
Tokens
Un auth() exitoso devuelve dos tokens:
- Token de Acceso - de corta duración, enviado con las solicitudes de API. Su duración está configurada en el panel de administración.
- Token de Actualización - de larga duración, utilizado para obtener nuevos tokens de acceso.
El SDK almacena y actualiza los tokens por ti. Para mantener una sesión a través de recargas, configura saveFunction (ver la sección de Preguntas Frecuentes a continuación).
Campos del Formulario
Al registrar usuarios, envías entradas de datos del formulario con:
marker- nombre del campo (por ejemplo,email_reg,password_reg,last_name)type- tipo de dato (por ejemplo,string,image)value- el valor real
📊 Tabla de Referencia Rápida - Métodos Comunes
| Método | Qué Hace |
|---|---|
| activateUser() | Activación de usuario con un código de servicio. |
| auth() | Autenticar a un usuario. |
| changePassword() | Cambio de contraseña del usuario. |
| checkCode() | Verificar el código de activación del usuario. |
| generateCode() | Obtener un código para activar al usuario. |
| getActiveSessionsByMarker() | Obtener 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() 🔐 | Cerrar sesión de la cuenta actual. |
| logoutAll() 🔐 | Cerrar sesión en todos los dispositivos. |
| oauth() | Registrar / autenticar a través de OAuth. |
| refresh() | Actualizar los tokens de usuario. |
| signUp() | Registro de usuario. |
🔐 marca los métodos que requieren una sesión de usuario autorizada.
❓ Preguntas Comunes (FAQ)
¿Necesito gestionar los tokens manualmente?
No. El SDK almacena los tokens, actualiza los que han expirado y envía el token de acceso con cada solicitud automáticamente.
¿Cómo mantengo a los usuarios conectados después de una recarga de 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 un 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 oauth().
¿Qué sucede cuando el token de acceso expira?
El SDK utiliza automáticamente el token de actualización para obtener un nuevo token de acceso, por lo que los usuarios permanecen conectados.
🎓 Mejores Prácticas
- Siempre pasa el marcador del proveedor como el primer argumento (por ejemplo,
"email"). - Persiste el token de actualización con
saveFunctionpara que las sesiones sobrevivan a las recargas. - Envuelve las llamadas de autenticación en try/catch e inspecciona el objeto de error devuelto.
- Usa
logout()/logoutAll()para invalidar sesiones en el servidor, no solo del lado del cliente.
🔗 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