Introducción
🎯 ¿Qué hace este módulo?
El módulo Users te permite gestionar usuarios registrados. En Platform OneEntry, hay herramientas necesarias para trabajar con usuarios registrados.
📖 Explicación Simple
Cada aplicación necesita gestión de usuarios:
- 📝 Perfiles de Usuario - Gestionar información del usuario
- 💾 Datos de Usuario Personalizados - Almacenar datos específicos de la aplicación (objeto de estado)
- 🔍 Búsqueda de Usuarios - Buscar y filtrar usuarios
✨ Conceptos Clave
¿Qué es un Usuario?
Un Usuario es una cuenta registrada en tu aplicación:
- Información Básica - Nombre, correo electrónico, teléfono
- Autenticación - Almacenamiento seguro de contraseñas
- Objeto de Estado - Datos personalizados de la aplicación
- Tiempos - Fecha de registro, último inicio de sesión
- Estado - Activo, inactivo, bloqueado
- Permisos - Roles de usuario y niveles de acceso
Estructura del Usuario
Cada usuario tiene esta estructura:
{
id: 8, // ID del usuario
identifier: 'test@test.ru', // Identificador del usuario (correo electrónico/login)
authProviderIdentifier: 'email', // Tipo de proveedor de autenticación
formIdentifier: 'reg', // Identificador del formulario de registro
formData: [ // Datos del perfil del usuario
{ marker: 'name_reg', type: 'string', value: 'Ivan' },
{ marker: 'phone_reg', type: 'string', value: '+19258382556' },
],
groups: [1], // Grupos de usuario para permisos
state: {}, // Datos personalizados de la aplicación
moduleFormConfigs: [], // Configuraciones adicionales del formulario
total: "1" // Conteo total (para paginación)
}
Campos Clave:
id- Identificador único del usuarioidentifier- Login del usuario (correo electrónico, teléfono, nombre de usuario)authProviderIdentifier- Método de autenticación utilizado (correo electrónico, teléfono, etc.)formData- Array de campos del formulario con información del perfil del usuariogroups- Array de IDs de grupos para control de accesostate- Objeto JSON personalizado para datos específicos de la aplicación
Obtener usuario con datos de estado personalizados
Beneficios:
- 🔒 Seguro - Hashing de contraseñas, autenticación segura
- 📋 Validado - Validación de correo electrónico y datos
- 🔄 Autenticado - Sesiones basadas en tokens
- 💾 Persistente - Datos almacenados en la base de datos
Objeto de Estado del Usuario
Puedes almacenar los datos necesarios para que tu aplicación funcione en un objeto de estado. Cuando cambies el usuario, agrega los datos necesarios al estado. Cuando se reciban los datos del usuario posteriormente, contendrán un objeto de estado.
Un ejemplo en el que agregamos información al usuario sobre cuántos pedidos ha realizado. Agrega un campo "orderCount" con el valor al objeto de estado.
El objeto de estado es un almacenamiento de datos personalizados por usuario:
| Caso de Uso | Ejemplo de Estado | Descripción |
|---|---|---|
| E-commerce | { orderCount: 5, totalSpent: 499.99 } | Rastrear historial de compras |
| Sitio de Contenido | { articlesRead: 25, bookmarks: [1,2,3] } | Rastrear consumo de contenido |
| Aplicación Social | { postsCount: 42, followers: 150 } | Rastrear métricas sociales |
| Gaming | { level: 15, score: 9500, achievements: [...] } | Rastrear progreso en el juego |
| SaaS | { plan: 'premium', usage: 75 } | Rastrear datos de suscripción |
Flujo de Trabajo del Usuario
1. El usuario completa el formulario de registro
(Correo electrónico, contraseña, nombre)
↓
2. se llama a createUser()
(OneEntry valida y hace hash de la contraseña)
↓
3. Cuenta de usuario creada
(Almacenada en la base de datos)
↓
4. El usuario inicia sesión
(authenticateUser() verifica credenciales)
↓
5. Token de autenticación devuelto
(Usado para solicitudes posteriores)
↓
6. La aplicación actualiza el estado del usuario
(Datos personalizados como orderCount)
↓
7. Datos del usuario obtenidos según sea necesario
(getUserById() con el estado actual)
¿Por qué usar el módulo de Usuarios?
| Beneficio | Descripción |
|---|---|
| Autenticación Segura | Hashing de contraseñas, gestión de tokens |
| Gestión de Usuarios | Leer, actualizar, eliminar usuarios |
| Almacenamiento de Datos Personalizados | Objeto de estado para datos específicos de la aplicación |
| Validación de Correo Electrónico | Comprobación automática del formato del correo electrónico |
| Prevención de Duplicados | Previene el registro de correos electrónicos duplicados |
| Gestión de Sesiones | Autenticación basada en tokens |
📋 Lo Que Necesitas Saber
Proveedor de Autorización
Los usuarios en OneEntry se gestionan a través de un sistema de proveedor de autorización que maneja los mecanismos de registro y autenticación.
Puntos clave:
- Los usuarios se registran a través de formularios configurados en el panel de administración de OneEntry
- Cada usuario está asociado con un proveedor de autenticación (correo electrónico, teléfono, etc.)
- Los datos del usuario se almacenan en campos de formulario definidos por
formData - Metadatos adicionales se almacenan en el objeto
state
El Objeto de Estado del Usuario es Flexible
El objeto de estado puede almacenar cualquier dato JSON personalizado
Mejores prácticas:
- Almacenar solo datos específicos de la aplicación
- Mantener el objeto de estado organizado con objetos anidados
- Actualizar todo el objeto de estado (dispersar datos existentes)
- No almacenar datos sensibles en el estado
Seguridad de Contraseñas
OneEntry maneja la seguridad de contraseñas automáticamente
Tu responsabilidad:
- Hacer cumplir los requisitos de contraseña (longitud, complejidad)
- Validar la contraseña en el lado del cliente antes de enviar
- Nunca registrar contraseñas
- Usar HTTPS para todas las solicitudes de autenticación
Gestión de Tokens de Autenticación
Almacena y utiliza tokens de autenticación de manera segura
Mejores prácticas para tokens:
- Almacenar en cookies solo HTTP cuando sea posible
- Usar tiempos de expiración cortos (1-2 horas)
- Implementar tokens de actualización para sesiones largas
- Limpiar el token al cerrar sesión
- Nunca exponer tokens en URLs
Validación del Registro de Usuarios
Siempre valida la entrada del usuario antes del registro
Actualizar el Estado del Usuario de Forma Segura
Siempre preserva el estado existente al actualizar:
// ❌ Malo - Sobrescribe todo el estado
const userstate = {
orderCount: 1
}
// ✅ Bueno - Preserva el estado existente
const userstate = {
...user.state, // Dispersar el estado existente
orderCount: (user.state.orderCount || 0) + 1 // Actualizar campo específico
}
Prevención de Correos Electrónicos Duplicados
OneEntry previene automáticamente el registro de correos electrónicos duplicados
Mejor práctica: Verifica el estado de error y muestra un mensaje amigable para el usuario.
Paginación de Usuarios
Para bases de usuarios grandes, siempre pagina al obtener múltiples usuarios
💡 Notas Importantes
Autorización Requerida
La mayoría de los métodos de usuario requieren autorización a través del módulo AuthProvider. Asegúrate de autenticar al usuario primero antes de llamar a los métodos de gestión de usuarios.
Datos del Formulario del Usuario
Los datos del usuario están estructurados de acuerdo con los formularios configurados en el panel de administración de OneEntry:
- Cada usuario tiene un
formIdentifierque hace referencia al formulario de registro utilizado - Los datos del usuario se almacenan en el array
formDatacon marcadores, tipos y valores - Los tipos de campo admitidos incluyen: string, integer, float, date, dateTime, time, text, textWithHeader, image, groupOfImages, file, radioButton, list, entity, timeInterval
Directrices del Objeto de Estado
Mejores prácticas para el objeto de estado:
- Almacenar solo datos específicos de la aplicación
- Mantener el estado organizado con objetos anidados
- Actualizar todo el estado (dispersar datos existentes)
- No almacenar datos sensibles (contraseñas, tokens)
- No almacenar grandes datos binarios
- Usar convenciones de nomenclatura consistentes
Notificaciones Push
Usa addFCMToken() y deleteFCMToken() para gestionar tokens de Firebase Cloud Messaging para enviar notificaciones push a los usuarios.
Datos de Notificación
Al actualizar usuarios, puedes proporcionar un objeto notificationData que contenga:
email- Dirección de correo electrónico para notificacionesphonePush- Array de números de teléfono para notificaciones pushphoneSMS- Número de teléfono para notificaciones SMS
📊 Tabla de Referencia Rápida
| Método | Descripción | Caso de Uso |
|---|---|---|
| getUser() | Obtener datos de usuario autorizado | Obtener perfil de usuario actual |
| updateUser() | Actualizar información del usuario | Actualizaciones de perfil, cambios de estado |
| archiveUser() | Archivar cuenta de usuario | Eliminar suavemente la cuenta de usuario |
| deleteUser() | Eliminar usuario permanentemente | Eliminar completamente la cuenta de usuario |
| addFCMToken() | Agregar token FCM para notificaciones push | Habilitar notificaciones push |
| deleteFCMToken() | Eliminar token FCM | Deshabilitar notificaciones push |
❓ Preguntas Comunes (FAQ)
¿Qué es el objeto de estado del usuario y cómo debo usarlo?
El objeto de estado es un almacenamiento JSON flexible para datos específicos de usuario de la aplicación. Úsalo para rastrear métricas personalizadas como conteos de pedidos, preferencias o progreso. Siempre dispersa el estado existente al actualizar para evitar sobrescribir otros datos.
¿Cómo actualizo la información del perfil del usuario?
Usa updateUser() para modificar los datos del perfil del usuario. Puedes actualizar campos de datos del formulario, configuraciones de notificación y el objeto de estado. Recuerda autenticar al usuario primero usando el módulo AuthProvider.
¿Cuál es la diferencia entre archiveUser() y deleteUser()?
archiveUser() es una eliminación suave que oculta al usuario pero preserva los datos (puede ser restaurado). deleteUser() elimina permanentemente al usuario y todos los datos asociados (no se puede deshacer). Usa la archivación a menos que necesites una eliminación completa de datos.
¿Cómo manejo las notificaciones push para los usuarios?
Usa addFCMToken() para registrar un token de Firebase Cloud Messaging para el usuario. Esto permite enviar notificaciones push a sus dispositivos. Usa deleteFCMToken() cuando inicien sesión o desactiven las notificaciones.
¿Puedo almacenar datos sensibles en el objeto de estado del usuario?
¡No! Nunca almacenes contraseñas, tokens, números de tarjetas de crédito u otros datos sensibles en el objeto de estado. No está cifrado específicamente para datos sensibles. Usa sistemas seguros y diseñados para información sensible.
¿Cómo obtengo datos del usuario después del registro?
Después de un registro y autenticación exitosos, usa getUser() para obtener los datos del usuario autenticado, incluyendo su información de perfil y objeto de estado personalizado.
🎓 Mejores Prácticas
- Valida la entrada antes del registro - Verifica el formato del correo electrónico, la fortaleza de la contraseña
- Usa HTTPS para la autenticación - Encripta todas las solicitudes de inicio de sesión
- Implementa requisitos de contraseña - Mínimo 8 caracteres, mezcla de mayúsculas, números
- Almacena tokens de manera segura - Cookies solo HTTP o almacenamiento seguro
- Preserva el estado existente - Dispersa datos existentes al actualizar el estado
- Maneja correos electrónicos duplicados - Captura errores 409 y muestra un mensaje amigable para el usuario
- Implementa cierre de sesión - Limpia tokens y datos de sesión
- Cachea datos de usuario - Reduce llamadas a la API para usuarios frecuentemente accedidos
Más información sobre la gestión de usuarios en el panel de administración de OneEntry: https://doc.oneentry.cloudhttps://doc.oneentry.cloud/docs/category/users
Definición del módulo Users
const { Users } = defineOneEntry( "your-project-url", { "token": "your-app-token" });
🔗 Documentación Relacionada
- Módulo AuthProvider - Requerido para la autenticación de usuarios
- Panel de Administración de OneEntry - Usuarios - Documentación oficial del panel de administración
- Mejores Prácticas de Autenticación
- Seguridad de Contraseñas
- Módulo de Pedidos - Los pedidos hacen referencia a los usuarios para el historial de pedidos
- Módulo de Pagos - Los pagos hacen referencia a los usuarios para el historial de pagos