Arquitectura Lógica
La arquitectura de @lynx/auth se basa en la flexibilidad nativa que ofrece Better Auth para componer la capa de identidad a través de un sistema de plugins y configuraciones estrictas.
Flujo de Exportación y Consumo
Sección titulada «Flujo de Exportación y Consumo»graph LR
A(Configuración Central de Auth) --> B(Instancia de Servidor)
A --> C(Cliente de React)
B --> D[Validación en NestJS]
B --> E[API de Auth Next.js]
C --> F[Hooks de Next.js useSession]
Arquitectura de Plugins
Sección titulada «Arquitectura de Plugins»Better Auth es modular por naturaleza. En Lynx, inyectamos funcionalidad mediante complementos oficiales y personalizados:
- Soporte Internacionalizado: Integración total de
@better-auth/i18npara garantizar que los correos, mensajes de error y flujos de autenticación respeten el idioma del usuario (fundamental para un ecosistema locale-aware). - Zod como Frontera: Todo payload o evento que sale del ámbito de Better Auth y pasa a nuestra lógica custom, debe cruzar un validador de Zod.
Configuración y Creación
Sección titulada «Configuración y Creación»Para que un nuevo proveedor de OAuth (por ejemplo, Google o GitHub) o un flujo de inicio de sesión esté disponible en todas partes:
- Definir el Plugin/Proveedor: En el archivo de configuración central, inyecta la extensión dentro de la lista de
pluginso define las llaves secretas desocialProviders. - Actualizar el Adaptador Drizzle: Si el proveedor requiere nuevas columnas, actualiza primero
@lynx/modelsy luego mapea el campo en la configuración de base de datos de Auth. - Exportar el Cliente: Asegúrate de que el cliente (
createAuthClient) se regenere correctamente derivando su tipado completo de tu nueva configuración para que TypeScript lo detecte enapps/next.