- Ve a AWS Console
- Busca "Cognito" en la barra de búsqueda
- Selecciona "Amazon Cognito"
- Haz clic en "Create user pool"
- Step 1: Configure sign-in experience
- Cognito user pool sign-in options: Selecciona "Username"
- Username requirements: Marca "Allow username changes"
- Click "Next"
- Step 2: Configure security requirements
- Password policy: Selecciona "Cognito defaults" o "Custom"
- Si seleccionas "Custom":
- Minimum length: 8
- Require uppercase letters: ✅
- Require lowercase letters: ✅
- Require numbers: ✅
- Require special characters: ✅ (opcional)
- Multi-factor authentication: Selecciona "Optional"
- MFA methods: Marca "Software token MFA (TOTP)"
- Click "Next"
- Step 3: Configure sign-up experience
- Required attributes: Marca "Email"
- Email: Marca "Allow email addresses"
- Email verification: Marca "Required"
- Click "Next"
- Step 4: Configure message delivery
- Email provider: Selecciona "Send email with Cognito"
- From email address: Selecciona "Cognito default"
- Click "Next"
- Step 5: Integrate your app
- Puedes saltarte este paso por ahora
- Click "Next"
- Step 6: Review and create
- Revisa la configuración
- Click "Create user pool"
- En tu User Pool, ve a la pestaña "App integration"
- En "App clients and analytics", haz clic en "Create app client"
- Step 1: Configure app client
- App client name: "cognito-auth-client"
- Public client: ✅ (marca esta opción)
- Click "Next"
- Step 2: Configure authentication flows
- Authentication flows: Marca "USER_PASSWORD_AUTH"
- OAuth flows: Puedes dejarlo sin marcar por ahora
- Click "Next"
- Step 3: Review and create
- Revisa la configuración
- Click "Create app client"
- En tu User Pool, ve a "User Pool overview"
- Copia el "User Pool ID" (formato:
us-east-1_xxxxxxxxx)
- En "App integration" → "App clients and analytics"
- Encuentra tu app client
- Copia el "App client ID"
- En la misma sección, haz clic en "Show client secret"
- Copia el "App client secret"
# AWS Cognito Configuration
AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=tu_access_key_id
AWS_SECRET_ACCESS_KEY=tu_secret_access_key
# Cognito User Pool
COGNITO_USER_POOL_ID=us-east-1_xxxxxxxxx
COGNITO_CLIENT_ID=tu_client_id
COGNITO_CLIENT_SECRET=tu_client_secret
# Server Configuration
PORT=3001
NODE_ENV=development
# JWT Secret for additional security
JWT_SECRET=tu_jwt_secret_aqui
# Frontend URL for CORS
FRONTEND_URL=http://localhost:5173
# MFA Configuration
MFA_ENABLED=true
MFA_ISSUER=CognitoAuthSystemVITE_API_URL=http://localhost:3001/api- Ve a IAM en AWS Console
- Crea un nuevo usuario
- Asigna la política "AmazonCognitoPowerUser" o crea una política personalizada:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["cognito-idp:*"],
"Resource": "*"
}
]
}- En el usuario IAM, ve a "Security credentials"
- Crea "Access keys"
- Copia el Access Key ID y Secret Access Key
- Ejecuta el backend:
npm run dev:server - Verifica que no haya errores de configuración
- Haz una petición a:
http://localhost:3001/health
- Ejecuta el frontend:
npm run dev:client - Ve a
http://localhost:5173/register - Intenta registrar un usuario de prueba
- En tu User Pool, ve a "Messaging"
- Configura un dominio de email verificado
- Personaliza los templates de email
- En tu User Pool, ve a "User Pool properties"
- En "Lambda triggers", puedes configurar funciones Lambda para:
- Pre-authentication
- Post-authentication
- Pre-sign-up
- Post-confirmation
- En tu User Pool, ve a "App integration"
- En "Domain name", puedes configurar un dominio personalizado
- Verifica que las AWS credentials sean correctas
- Asegúrate de que el usuario IAM tenga permisos para Cognito
- Verifica que el User Pool ID sea correcto
- Asegúrate de que estés en la región correcta
- Verifica que el Client ID sea correcto
- Asegúrate de que el app client esté en el User Pool correcto
- Verifica que MFA esté habilitado en el User Pool
- Asegúrate de que "Software token MFA (TOTP)" esté marcado
- Verifica que "USER_PASSWORD_AUTH" esté habilitado en el app client
- Asegúrate de que el app client sea público
Si tienes problemas con la configuración:
- Revisa los logs del servidor
- Verifica la documentación oficial de AWS Cognito
- Asegúrate de que todas las variables de entorno estén configuradas correctamente
- Verifica que el User Pool y App Client estén en la misma región
¡Configuración completada! 🎉
Ahora puedes ejecutar el sistema completo con:
npm run dev