Autenticación (cuentas de usuario) se habilita ejecutando el comando vela enable auth. Esto te pedirá opciones de configuración. El módulo de autenticación crea todo el código necesario para la autenticación, incluyendo login, logout, sign up, reset de contraseña, verificación de correo electrónico y más.
Sintaxis
$ vela enable authLa autenticación necesita un backend, y sus páginas se construyen con componentes de shadcn-svelte, así que el proyecto también necesita shadcn-svelte. Sin él el comando se rechaza antes de cambiar nada.
Rutas protegidas
Una vez habilitado, un grupo de rutas protegidas se crea automáticamente, por defecto (app). Cualquier ruta colocada dentro de este grupo estará protegida y requerirá autenticación para acceder. Los usuarios no autenticados serán redirigidos a la página de login. Las rutas protegidas y la ruta de login para redirección se pueden configurar en el middleware en hooks.server.ts, configuraciones por defecto mostradas a continuación:
import { handlePocketbase } from '@velastack/pocketbase';
export const handle = handlePocketbase({
auth: {
enabled: true,
protectedRoutes: ['/(app)'],
loginPath: '/login'
}
})Códigos de un solo uso
Activa OTP para la colección users en la interfaz de administración de PocketBase y las páginas de login y registro ofrecen un código de un solo uso enviado por correo, junto a la contraseña. Registrarse con un código crea la cuenta sin contraseña y después pide un nombre en /welcome. Para iniciar sesión con un código enviado por WhatsApp, consulta vela enable whatsapp.
OAuth
OAuth se soporta de forma nativa con PocketBase. Configura los proveedores de OAuth en la interfaz de administración de PocketBase. Cualquier proveedor de OAuth habilitado estará disponible en el flujo de autenticación.
Andamios posteriores
Una vez habilitada la autenticación, los andamios posteriores se crearán automáticamente dentro del grupo protegido (app).
Funciones remotas
vela enable auth --remote (vela 0.15.13 o posterior) genera los mismos flujos con funciones remotas de SvelteKit en lugar de acciones de formulario y sveltekit-superforms. Consulta Autenticación (funciones remotas).