- Registrarte o iniciar sesión con email/contraseña o Google.
- Actualizar tu perfil: nombre e imagen.
- Cambiar tu email con verificación por correo.
- Resetear o cambiar tu contraseña con validación simple y clara.
- Verificar tu email y reenviar el enlace si lo necesitas.
- Cerrar sesión en todos tus dispositivos cuando lo prefieras.
- Acceder al área de Admin si tu usuario tiene ese rol.
- Configuración: en
src/lib/auth.tsiniciamos Better Auth con Prisma y los proveedores sociales. - Sesiones:
src/lib/get-session.tsobtiene la sesión en el servidor para proteger páginas y acciones. - Protección: rutas como
/dashboard,/profiley/admincomprueban si estás autenticado y tu rol. - Contraseñas:
src/lib/validation.tsdefine reglas simples (mínimo 8 caracteres y un carácter especial) para mantenerlo seguro sin complicarte. - Correos:
src/lib/email.tsusa Resend para enviar enlaces de verificación, reseteo y cambio de correo. - Datos: Prisma sobre PostgreSQL guarda usuarios, sesiones y cuentas de OAuth.
- Configura tus variables:
DATABASE_URL,RESEND_API_KEY, y claves de Google. - Arranca el proyecto y crea tu cuenta. Prueba login social si lo tienes configurado.
- Explora el perfil y las opciones de seguridad para ver todo en acción.
Crea un archivo .env en la raíz del proyecto y añade estas variables. Puedes usar .env.example como referencia.
DATABASE_URL=
BETTER_AUTH_SECRET=
BETTER_AUTH_URL=
RESEND_API_KEY=
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
DATABASE_URL: URL de conexión de la base de datos (por ejemplo, PostgreSQL).BETTER_AUTH_SECRET: secreto para firmar tokens/sesiones de Better Auth.BETTER_AUTH_URL: URL pública de tu app (ej.http://localhost:3000).RESEND_API_KEY: API key de Resend para enviar correos.GOOGLE_CLIENT_IDyGOOGLE_CLIENT_SECRET: credenciales OAuth de Google.
Configura tus claves y revisa la documentación esencial:
- Better Auth — Documentación: https://www.better-auth.com/docs
- Resend — Claves de API: https://resend.com/dashboard/api-keys
- Google — Credenciales OAuth: https://console.cloud.google.com/apis/credentials
Integra base de datos y autenticación siguiendo esta guía (empieza desde el paso número dos):