Autenticación
DYPAI incluye un sistema de auth completo de serie. Registro, login, sesiones, roles y JWT — todo gestionado por ti.
Elige tu patrón de auth
¿No estás seguro si necesitas registro público, solo invitación u OAuth? Ve Flujos de Auth.
Métodos de auth
Email y Contraseña
Registro y login estándar con confirmación por email y reset de contraseña.
Proveedores OAuth
Login social con los proveedores que actives en Auth → Providers.
Sin contraseña (OTP)
Inicio de sesión con código enviado por email o SMS.
Secciones del dashboard
El área de Autenticación (Build → Authentication) está organizada en varias sub-secciones:
| Sección | Para qué sirve |
|---|---|
| Users | Lista, crea, invita y gestiona los usuarios de tu app. |
| Roles | Define roles personalizados y asígnalos a usuarios. |
| Providers | Activa y configura el login social/OAuth (Client ID + Secret por proveedor). |
| Plantillas de email y el remitente para confirmación, recovery e invitaciones. | |
| SMS | Configura el proveedor de SMS para el login con OTP por teléfono. |
| Settings | Activa/desactiva el signup, la confirmación por email y otros comportamientos de auth. |
Usando auth con el SDK
Auth está integrado en el SDK — no necesitas crear endpoints:
import { createClient } from '@dypai-ai/client-sdk'
const dypai = createClient('https://YOUR_PROJECT_ID.dypai.app')
// Registro
const { error } = await dypai.auth.signUp({ email, password })
// Login
const { error } = await dypai.auth.signInWithPassword({ email, password })
// OAuth
await dypai.auth.signInWithOAuth('google')
// Cerrar sesión
await dypai.auth.signOut()
// El SDK adjunta el JWT automáticamente a todas las llamadas API
const { data } = await dypai.api.get('list_products')
React hooks
import { useAuth } from '@dypai-ai/client-sdk/react'
function LoginPage() {
const { signIn, isLoading, isAuthenticated } = useAuth()
const handleSubmit = async (email, password) => {
const { error } = await signIn(email, password)
if (error) setError(error.message)
}
}
| Parameter | Type | Description |
|---|---|---|
signIn(email, password) | async | Login con email + contraseña |
signUp(email, password, data?) | async | Registrar nuevo usuario |
signOut() | async | Cerrar sesión |
resetPassword(email) | async | Enviar email de recuperación |
setPassword(password) | async | Establecer nueva contraseña (tras link de recovery/invitación) |
signInWithOAuth(provider) | async | Redirigir al proveedor OAuth (google, github, apple) |
signInWithOtp({ email }) | async | Enviar magic link o código OTP |
isAuthenticated | boolean | Si el usuario está logueado |
isLoading | boolean | Estado de auth cargando |
user | object | null | Usuario actual (id, email, role) |
Cómo funciona
- Usuario inicia sesión → auth valida credenciales → devuelve JWT + refresh token
- SDK almacena tokens y adjunta JWT a cada request automáticamente
- Cuando el JWT expira, SDK lo refresca en background — sin interrumpir al usuario
- Los endpoints verifican el rol del JWT contra su lista de allowed_roles
Roles y control de acceso
Los roles son strings personalizados que defines (ej: admin, editor, viewer). Cada endpoint tiene una lista de allowed_roles.
| Parameter | Type | Description |
|---|---|---|
modo jwt | Endpoint | El usuario debe estar logueado + su rol debe estar en allowed_roles |
modo api_key | Endpoint | Requiere header X-API-KEY. Para servidor-a-servidor |
modo public | Endpoint | Sin auth. Solo para datos públicos de solo lectura |
Configurar OAuth
Cada proveedor OAuth necesita un Client ID + Secret configurados en Auth → Providers:
| Proveedor | Cómo configurar |
|---|---|
| Crear credenciales OAuth en Google Cloud Console | |
| GitHub | Crear una OAuth App en GitHub Settings |
| Apple | Requiere membresía del Apple Developer Program |
Activa y configura los proveedores desde el dashboard (Auth → Providers) o vía MCP con app_settings.
Actívalo antes de llamarlo
signInWithOAuth(provider) solo funciona cuando el proveedor está activado en Auth → Providers. El OTP por teléfono/SMS (signInWithOtp({ phone })) necesita un proveedor de SMS configurado en Auth → SMS.
Auth en el servidor: el nodo dypai_auth
Para operaciones de auth en el servidor dentro de tus workflows — crear usuarios, asignar roles o validar sesiones desde un endpoint — usa el nodo dypai_auth en el API Builder. Se ejecuta con los privilegios del engine, así que mantén esos endpoints en modo jwt (rol admin) o api_key y nunca los expongas públicamente.