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
Google, GitHub, Apple, Discord y más. Login social con un click.
Sin contraseña (OTP)
Inicio de sesión con código enviado por email o SMS.
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://tu-proyecto.dypai.dev')
// 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 Client ID + Secret configurados en tu proyecto:
| 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 proveedores desde el dashboard (Auth → Settings) o vía MCP con app_settings.