Implementando Better Auth: Autenticación y autorización en TypeScript
Better Auth es un framework de autenticación y autorización universal e independiente del framework para TypeScript
Tiempo estimado de lectura: 5 min
Ideas clave
- Better Auth es agnóstico al framework y está diseñado para TypeScript, con un núcleo minimalista extensible mediante plugins.
- Se puede self-hostear y ofrece control total sobre datos, esquemas y tipado end‑to‑end.
- Integración recomendada en Angular mediante servicio inyectable + HttpInterceptor; ejemplos y patrones operativos incluidos.
- Casos de uso: B2B SaaS, cumplimiento (GDPR/HIPAA), integraciones con agentes/workflows como n8n.
- Self‑hosting implica responsabilidades operativas: seguridad, observabilidad, backups y pruebas.
Introducción
Better Auth es un framework de autenticación y autorización universal e independiente del framework para TypeScript. Ofrece un conjunto completo de funciones listas para usar e incluye un ecosistema de plugins que simplifica la incorporación de funcionalidades avanzadas. Ya sea que necesite 2FA, clave de acceso, multiusuario, compatibilidad con múltiples sesiones o incluso funciones empresariales como SSO, crear su propio IDP le permite centrarse en desarrollar su aplicación en lugar de reinventar la rueda. Se puede utilizar con Angular.
Better Auth exactamente cumple la promesa del enunciado: es un framework agnóstico para TypeScript pensado para que equipos construyan su propio Identity Provider (IDP) sin quedarse atados a un SaaS. En las primeras líneas: Better Auth es un framework de autenticación y autorización universal e independiente del framework para TypeScript. Ofrece un conjunto completo de funciones listas para usar e incluye un ecosistema de plugins que simplifica la incorporación de funcionalidades avanzadas. Ya sea que necesite 2FA, clave de acceso, multiusuario, compatibilidad con múltiples sesiones o incluso funciones empresariales como SSO, crear su propio IDP le permite centrarse en desarrollar su aplicación en lugar de reinventar la rueda. Se puede utilizar con Angular.
Este artículo explica por qué importa, cómo se integra en Angular y qué criterios técnicos debes evaluar antes de adoptarlo.
Resumen rápido (lectores con prisa)
Better Auth es un framework TypeScript agnóstico para construir un IDP self‑hosted con plugins para SSO, 2FA y provisioning. Úsalo cuando necesites control de datos, tipado y extensibilidad; evita si necesitas lanzar un MVP sin infra. Integra en Angular con un servicio inyectable y un HttpInterceptor para gestionar tokens y refresh.
Better Auth es un framework de autenticación y autorización universal e independiente del framework para TypeScript — arquitectura y ventajas
Decisiones técnicas clave
Better Auth se sostiene en dos decisiones técnicas clave:
- Implementar la lógica sobre APIs web estándar (Request/Response), lo que permite ejecutarlo en Node, Bun, Deno o entornos Edge.
- Diseñar un núcleo minimalista extensible mediante plugins, para evitar bloat y cargar solo lo que tu producto necesita.
Qué trae de serie
Qué trae de serie: email/password, 35+ proveedores OAuth, gestión de organizaciones (multi-tenant), sesiones múltiples, API keys, JWT, Magic Links y adaptadores para ORMs populares. Plugins oficiales cubren 2FA (TOTP), Passkeys/WebAuthn, SAML/OIDC para SSO y SCIM para provisioning.
Ventaja práctica
Ventaja práctica: control total de datos y schemas, tipado TypeScript end‑to‑end y la opción de self‑host sin vendor lock‑in. URL de referencia: better-auth.com
Integración en Angular: patrón recomendado (servicio + interceptor)
Para una app Angular enterprise, el patrón recomendable plantea un cliente agnóstico envuelto en un servicio inyectable y un HttpInterceptor para gestionar tokens/refresh.
Ejemplo mínimo
import { createAuthClient } from '@better-auth/client';
import { Injectable, signal } from '@angular/core';
const authClient = createAuthClient({ baseURL: '/api/auth' });
@Injectable({ providedIn: 'root' })
export class AuthService {
public user = signal(null);
async login(email: string, pass: string) {
const { data, error } = await authClient.signIn.email({ email, password: pass });
if (!error) this.user.set(data.user);
}
async logout() {
await authClient.signOut();
this.user.set(null);
}
}
Complementa con
- HttpInterceptor que adjunte cookies o auth headers y maneje refresh tokens.
- Guards/Resolvers para rutas protegidas.
- Estado reactivo con Signals o RxJS para sincronizar UI.
Casos de uso y adopción incremental
Dónde aporta más valor
- B2B SaaS con orgs, roles y SSO: evita el “SSO tax”.
- Entornos con requisitos de cumplimiento (GDPR/HIPAA) que exigen soberanía de datos.
- Plataformas que integran agentes o workflows (better-auth.com) y requieren control granular de tokens.
Estrategia de incorporación
- Prototipa con un subdominio /auth y un DB separado.
- Migración gradual: dual‑write (nuevo sistema + migración batch) y pruebas canary.
- Mide: tiempo de login, tasa de errores, coste infra y reducción de vendor fees.
Riesgos, operaciones y hardening
Puntos críticos
Self‑hosting devuelve responsabilidad al equipo. Puntos críticos:
- Seguridad operativa: rotación de claves, gestión de secrets, WAF y rate limiting.
- Tests y CI deterministas: flaky tests paralizan SSO/flows en producción.
- Observabilidad: logs estructurados, métricas de sesiones, alertas por anomalías.
- Backups y recovery para la DB de identidad.
Recomendaciones prácticas
- Least privilege para tokens de agente; scope limitado.
- Auditoría obligatoria de cambios críticos (SSO config, SCIM).
- Sandboxes para agentes que necesiten credenciales (no exponer prod keys).
Comparativa rápida contra alternativas
- Auth0 / Clerk (SaaS): rápido de arrancar, pero coste y lock‑in crecen con MAU y features empresariales.
- Auth.js/NextAuth: buena para apps ligadas a frameworks, menos agnóstico.
- Better Auth: mejor trade‑off para equipos TypeScript que quieren control, tipado y extensibilidad.
Criterio final: cuándo optar por Better Auth
Adopta Better Auth si:
- Tu stack es TypeScript-centric y necesitas independencia de framework.
- Buscas construir capacidades enterprise (SSO, SCIM) sin tarifas SaaS.
- Tienes equipo capaz de gestionar seguridad infra y operaciones.
No lo elijas si:
- Tu prioridad es lanzar un MVP sin recursos infra (en cuyo caso un SaaS puede ser válido).
- Tu infra actual no puede garantizar entornos deterministas y recuperación rápida.
- Tu backend principal no es compatible con JS/TS y migrar es inviable.
Better Auth no es la solución más simple, pero sí la más controlada para equipos que valoran soberanía, tipado y extensibilidad. Si tu objetivo es controlar la identidad (no cederla), empezar con npx auth init y una integración Angular mínima te dará una base sólida para escalar hacia SSO, 2FA y modelos multi‑tenant sin vender la llave del reino. Referencia: better-auth.com.
Dominicode Labs
Para equipos que trabajan con agentes, workflows o integraciones y buscan plantillas operativas y pruebas de concepto, puede ser útil revisar recursos y experimentos relacionados en Dominicode Labs. Estos recursos complementan prácticas de adopción incremental, testing y operación para infra de identidad.
FAQ
- ¿Qué es Better Auth y para qué sirve?
- ¿Se puede usar Better Auth con Angular?
- ¿Qué funcionalidades trae por defecto?
- ¿Cuáles son los riesgos de self‑hosting?
- ¿Cuándo debería elegir un SaaS en lugar de Better Auth?
- ¿Cómo empezar una migración incremental?
¿Qué es Better Auth y para qué sirve?
Better Auth es un framework de autenticación y autorización universal e independiente del framework para TypeScript, diseñado para construir un Identity Provider (IDP) self‑hosted con plugins para funcionalidades avanzadas como SSO, 2FA y SCIM.
¿Se puede usar Better Auth con Angular?
Sí. El patrón recomendado para Angular es encapsular el cliente en un servicio inyectable y usar un HttpInterceptor para adjuntar credenciales y manejar refresh tokens.
¿Qué funcionalidades trae por defecto?
Trae email/password, 35+ proveedores OAuth, gestión de organizaciones, sesiones múltiples, API keys, JWT, Magic Links y adaptadores para ORMs populares. Además hay plugins oficiales para 2FA (TOTP), Passkeys/WebAuthn, SAML/OIDC y SCIM.
¿Cuáles son los riesgos de self‑hosting?
Self‑hosting implica responsabilidad operativa: rotación de claves, gestión de secrets, WAF, rate limiting, pruebas deterministas en CI, observabilidad y planes de backup y recovery.
¿Cuándo debería elegir un SaaS en lugar de Better Auth?
Considera un SaaS si tu prioridad es lanzar un MVP rápidamente y no tienes capacidad operativa para gestionar infraestructura crítica de identidad. Un SaaS reduce la carga operativa pero introduce costes y posible vendor lock‑in.
¿Cómo empezar una migración incremental?
Estrategia típica: prototipa en un subdominio /auth con DB separada, usa dual‑write y migraciones batch, ejecuta pruebas canary y mide métricas clave como tiempo de login, tasa de errores y coste infra.
