Módulo Auth
Autenticación de usuario, registro y gestión de sesión mediantebase44.auth.
Contenido
- Tipos TypeScript
- Métodos
- Ejemplos
- Manejo de errores
- Proveedores de autenticación
- Disponibilidad de entorno
- Visibilidad de la app
- Limitaciones
Tipos TypeScript
Interfaz User
Interfaz LoginResponse
Interfaces de parámetros
RegisterParams
VerifyOtpParams
ResetPasswordParams
ChangePasswordParams
Tipo Provider
Métodos
Interfaz del módulo
Tabla de referencia de métodos
| Método | Parámetros | Tipo de retorno | Descripción |
|---|---|---|---|
register() | params: RegisterParams | Promise<any> | Crea una nueva cuenta de usuario |
loginViaEmailPassword() | email: string, password: string, turnstileToken?: string | Promise<LoginResponse> | Autentica con correo/contraseña |
loginWithProvider() | provider: Provider, fromUrl?: string | void | Inicia el flujo de inicio de sesión OAuth. Proveedores: 'google' (por defecto), 'microsoft', 'facebook' (habilita en configuración de app) |
me() | Ninguno | Promise<User> | Obtiene el usuario autenticado actual |
updateMe() | data: Partial<User> | Promise<User> | Actualiza el perfil del usuario actual |
logout() | redirectUrl?: string | void | Redirige al logout del lado del servidor (borra cookies HTTP-only y sesión), luego a redirectUrl o URL actual |
redirectToLogin() | nextUrl: string | void | ⚠️ Evitar - Prefiere UI de login personalizada con loginViaEmailPassword() o loginWithProvider() |
isAuthenticated() | Ninguno | Promise<boolean> | Comprueba si el usuario ha iniciado sesión |
setToken() | token: string, saveToStorage?: boolean | void | Establece manualmente el token de autenticación |
inviteUser() | userEmail: string, role: string | Promise<any> | Envía correo de invitación |
verifyOtp() | params: VerifyOtpParams | Promise<any> | Verifica código OTP |
resendOtp() | email: string | Promise<any> | Reenvía código OTP |
resetPasswordRequest() | email: string | Promise<any> | Solicita restablecimiento de contraseña |
resetPassword() | params: ResetPasswordParams | Promise<any> | Restablece contraseña con token |
changePassword() | params: ChangePasswordParams | Promise<any> | Cambia contraseña de usuario |
Ejemplos
Registrar nuevo usuario (flujo completo)
El registro requiere verificación de correo antes del login. Flujo completo:- Registrar - Crear la cuenta de usuario
- Correo de verificación enviado - El usuario recibe un código OTP
- Verificar OTP - El usuario introduce el código para verificar el correo
- Iniciar sesión - El usuario ahora puede iniciar sesión
Importante: Los usuarios no pueden iniciar sesión hasta que completen la verificación OTP. Intentar llamar a loginViaEmailPassword antes de la verificación fallará.
Iniciar sesión con correo/contraseña
Iniciar sesión con proveedor OAuth
Proveedores admitidos:'google' (habilitado por defecto), 'microsoft' y 'facebook'. Habilita Microsoft o Facebook en la configuración de autenticación de tu app antes de usarlos.
Obtener usuario actual
Actualizar perfil de usuario
Comprobar estado de autenticación
Logout
Logout redirige al usuario al endpoint de logout del lado del servidor (/api/apps/auth/logout) para borrar cookies HTTP-only y la sesión, luego redirige a la URL dada (o a la página actual si se omite). Requiere un entorno de navegador.
Patrón de ruta protegida
Establecer token de autenticación
Invitar usuario a la aplicación
Verificación OTP
Flujo de restablecimiento de contraseña
Cambiar contraseña
Manejo de errores
Escenarios de error comunes
El módulo auth puede lanzar varios errores. Aquí hay escenarios comunes y cómo manejarlos:Errores de autenticación (401/403)
Errores de validación (400/422)
Limitación de tasa (429)
Manejador de errores genérico
Proveedores de autenticación
Configura los proveedores de autenticación en el panel de tu app:Proveedores disponibles
Integrados (todos los planes):- Email/Password - Predeterminado, siempre habilitado
- Google - Autenticación OAuth
- Microsoft - Autenticación OAuth
- Facebook - Autenticación OAuth
- Okta
- Azure AD
- GitHub
Usar proveedores OAuth
- Google – habilitado por defecto.
- Microsoft – habilita en la configuración de autenticación de tu app antes de usarlo.
- Facebook – habilita en la configuración de autenticación de tu app antes de usarlo.
Disponibilidad de entorno
| Entorno | Disponibilidad | Notas |
|---|---|---|
| Frontend | ✅ Sí | Todos los métodos disponibles |
| Funciones de backend | ✅ Sí | Usa createClientFromRequest(req) para cliente autenticado |
| Rol de servicio | ❌ No | Los métodos de autenticación no están disponibles en el contexto de rol de servicio |
Uso en frontend
Uso en funciones de backend
Visibilidad de la app
Controla quién puede acceder a tu app en la configuración de la app:Apps públicas
- No se requiere login para acceso básico
- Los usuarios pueden ver contenido público sin autenticación
- Los usuarios autenticados obtienen funciones/datos adicionales
Apps privadas
- Se requiere login para acceder a cualquier contenido
- Los usuarios no autenticados son redirigidos automáticamente al login
- Todo el contenido está protegido por defecto
Limitaciones
Opciones de UI de autenticación
- Recomendado: Construye una UI de login/registro personalizada usando
loginViaEmailPassword()yloginWithProvider()para control total sobre la experiencia de usuario y la marca - Alternativa:
redirectToLogin()usa las páginas de autenticación alojadas de Base44 con personalización limitada
Login alojado (mediante redirectToLogin)
redirectToLogin()muestra las opciones de inicio de sesión y registro en la misma página- No hay un método
redirectToSignup()separado - Los usuarios pueden cambiar entre login/registro en la página alojada
- ⚠️ Nota: Prefiere construir una UI de login personalizada para una mejor experiencia de usuario
Requisitos de contraseña
- Se aplican requisitos mínimos de longitud y complejidad
- Los requisitos no se exponen mediante API
- Se devuelven errores de validación cuando no se cumplen los requisitos
Limitación de tasa
- Las solicitudes de OTP tienen limitación de tasa para prevenir abusos
- Las solicitudes de restablecimiento de contraseña tienen limitación de tasa
- Los intentos de inicio de sesión pueden tener limitación de tasa con protección Turnstile
Gestión de tokens
- Los JWT se almacenan automáticamente en localStorage por defecto
- La expiración y renovación de tokens no se exponen en la API
- Llama a
me()oisAuthenticated()para verificar la validez del token
Mejores prácticas
1. Siempre maneja errores
2. Verifica la autenticación antes de acciones protegidas
3. Usa seguridad de tipos con TypeScript
4. No codifiques credenciales
5. Proporciona retroalimentación al usuario
6. Maneja la expiración de tokens con elegancia
7. Construye una UI de login personalizada (recomendado)
Esta página fue traducida usando IA. Para obtener la información más precisa y actualizada, consulta la versión en inglés.

