Better Auth

Docs

  • Introduction Better Auth-introduction
  • Installation Better Auth-installation

Conceptos

  • Framework de autenticación: Sistema que permite gestionar identidades de usuarios, sesiones, permisos y roles de manera segura y escalable. Facilita la integración de distintos métodos de autenticación como contraseña, OAuth, JWT, SSO, entre otros.
  • Plugins: Extensiones que permiten ampliar las capacidades del framework, añadiendo nuevos métodos de autenticación, proveedores externos o funcionalidades adicionales como logging, verificación de correo o gestión de tokens.

Casos de uso

  • Autenticación de usuarios: Validar credenciales y gestionar sesiones de manera segura.
  • Integración con servicios externos: Conectar con proveedores de identidad como Google, Facebook o Azure AD.
  • Gestión de roles y permisos: Controlar el acceso a recursos según roles definidos.
  • Autenticación multifactor (MFA): Añadir capas de seguridad mediante SMS, email o apps de autenticación.
  • Single Sign-On (SSO): Permitir acceso único a múltiples aplicaciones sin necesidad de múltiples logins.

Ejemplos de código

Instalación básica

# Instalación usando npm
npm install better-auth

`

Configuración inicial

const BetterAuth = require('better-auth');

const auth = new BetterAuth({
	providers: ['local', 'google'],
	sessionSecret: 'miSecretoSuperSeguro'
});

Autenticación de usuario

auth.login('usuario@example.com', 'contraseña123')
	.then(user => console.log('Usuario autenticado:', user))
	.catch(err => console.error('Error de autenticación:', err));

Uso de plugins

const auditPlugin = require('better-auth-plugin-audit');

auth.use(auditPlugin({
	logFile: './audit.log'
}));

Buenas prácticas

  • Seguridad de contraseñas: Usar hashing fuerte (bcrypt o Argon2) y no almacenar contraseñas en texto plano.
  • Manejo de sesiones: Limitar la duración de sesiones y usar tokens seguros.
  • Validación de entrada: Evitar ataques de inyección y sanitizar datos de usuarios.
  • Registro de eventos: Mantener logs de accesos y fallos de autenticación para auditoría.
  • Actualización de dependencias: Mantener el framework y plugins siempre actualizados para evitar vulnerabilidades.