🔍 Investigación: Usuarios de Prueba en Clerk
Fecha: 1 de enero, 2025
Objetivo: Resolver problemas de autenticación con usuarios fake/de prueba en Clerk
📋 Problema Actual
Los usuarios fake creados con nuestros scripts no pueden iniciar sesión en Clerk. Posibles causas:
- ❌ Verificación de email requerida
- ❌ 2FA requerido
- ❌ Contraseñas no válidas
- ❌ Configuración del Dashboard de Clerk
- ❌ Problemas con la creación de usuarios vía API
🔍 Investigación Realizada
1. Documentación Oficial de Clerk
Fuentes consultadas:
2. Métodos para Crear Usuarios de Prueba
Método 1: Usuarios de Prueba con Códigos Predefinidos (Recomendado)
Según la documentación de Clerk, puedes usar direcciones de correo electrónico o números de teléfono ficticios que generan códigos de acceso predefinidos.
Ventajas:
- ✅ No requiere envío de emails reales
- ✅ Códigos predefinidos para pruebas
- ✅ Funciona en modo desarrollo
Implementación:
// Clerk genera códigos predefinidos para emails de prueba
// Ejemplo: test@example.com siempre genera el mismo código
Método 2: Crear Usuarios vía API con createUser
Parámetros importantes:
skipPasswordChecks: true- Permite contraseñas simplesskipPasswordRequirement: true- No requiere contraseñaemailAddress: [email]- Email del usuariopassword: string- Contraseña (opcional si skipPasswordRequirement)
Problema conocido:
- ⚠️ Aún así puede requerir verificación de email si está activada en el Dashboard
Método 3: Desactivar Verificación en Dashboard
Pasos:
- Dashboard → Settings → User & Authentication
- Desactivar "Require email verification"
- Cambiar "Multi-factor authentication" a "Optional" o "Disabled"
🛠️ Soluciones Propuestas
Solución 1: Usar Emails de Prueba con Códigos Predefinidos
Clerk tiene un sistema de emails de prueba que genera códigos predefinidos.
Emails de prueba conocidos:
test@example.comuser@test.com- Cualquier email con dominio
@test.como@example.com
Códigos predefinidos:
- Clerk genera códigos consistentes para estos emails
- No requiere verificación real
Implementación:
// Usar emails con dominio de prueba
const testEmails = [
'test.admin@test.com',
'test.participant1@test.com',
// ...
];
Solución 2: Verificar Configuración del Dashboard
Checklist:
- "Require email verification" está DESACTIVADO
- "Multi-factor authentication" está en "Optional" o "Disabled"
- "Password requirements" permite contraseñas simples
- La aplicación está en modo "Development" (no Production)
Solución 3: Usar skipEmailVerification (si existe)
Nota: Este parámetro puede no existir en la API actual. Verificar documentación más reciente.
Solución 4: Crear Usuarios Manualmente en Dashboard
Pasos:
- Dashboard → Users → Create User
- Ingresar email y contraseña
- Marcar como "Verified" manualmente
- Sincronizar con BD local
📝 Scripts Actuales
scripts/create-clerk-users.ts
Lo que hace:
- ✅ Crea usuarios en Clerk vía API
- ✅ Usa
skipPasswordChecks: true - ✅ Usa
skipPasswordRequirement: true - ✅ Sincroniza
userIdcon BD local - ⚠️ NO verifica emails automáticamente
Problema:
- Los usuarios se crean pero pueden requerir verificación de email
scripts/verify-clerk-users.ts
Lo que hace:
- ✅ Intenta verificar emails de usuarios existentes
- ✅ Usa
verifyEmailAddress(emailAddressId)
Problema:
- Puede no funcionar si la verificación está desactivada en el Dashboard
🎯 Plan de Acción
Paso 1: Verificar Configuración del Dashboard
- Ir a https://dashboard.clerk.com/
- Seleccionar la aplicación
- Settings → User & Authentication
- Verificar:
- ✅ "Require email verification" = OFF
- ✅ "Multi-factor authentication" = Optional
- ✅ "Password requirements" = Permite contraseñas simples
Paso 2: Usar Emails de Prueba con Dominios Especiales
Modificar prisma/seed-users.ts para usar dominios de prueba:
@test.com@example.com
Paso 3: Actualizar Script de Creación
Modificar scripts/create-clerk-users.ts para:
- Usar emails con dominios de prueba
- Verificar que los usuarios se creen correctamente
- Intentar verificar emails después de crear
Paso 4: Probar Flujo Completo
- Ejecutar
pnpm db:seed:users - Ejecutar
pnpm clerk:create-users - Intentar iniciar sesión con un usuario de prueba
- Verificar que no pida código de verificación
🔗 Referencias
⚠️ Notas Importantes
-
Modo Desarrollo vs Producción:
- Las configuraciones de desarrollo NO deben usarse en producción
- Siempre verificar que estás en la aplicación correcta
-
Códigos Predefinidos:
- Clerk puede tener códigos predefinidos para emails de prueba
- Consultar documentación más reciente para confirmar
-
Verificación Manual:
- Si la API no permite verificar automáticamente, hacerlo manualmente en el Dashboard
Próximos Pasos:
- Verificar configuración del Dashboard
- Probar con emails de dominio
@test.com - Actualizar scripts si es necesario
- Probar flujo completo de autenticación