Saltar al contenido principal

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 afuera.

📖 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ísticaQué HaceEjemplo de Uso
🔐 Registro de UsuarioCrear nuevas cuentas de usuarioFormulario de registro
🚪 Inicio/Cierre de SesiónAutenticar usuariosPágina de inicio de sesión
🔑 Gestión de ContraseñasCambiar y restablecer contraseñasFlujo de olvido de contraseña
🎫 Gestión de TokensMantener a los usuarios conectados de forma seguraSesiones de auto-renovación
✉️ Verificación de CorreoEnviar códigos de activaciónVerificar correo después del registro
🌍 MultilenguajeSoporte para diferentes idiomasAplicaciones 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 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étodoQué HaceCuá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
  • 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("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 proveedores 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 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(
"tu-url-del-proyecto", {
"token": "tu-token-de-aplicación"
}
);


🔗 Documentación Relacionada