devjaime/orienta-ai/skills-2
Claude Code and agent skill by devjaime/orienta-ai
Trust tier 3
- community
Source check pending
Checking that the SKILL.md file is still in the repository.
Install
npx vskill@latest install devjaime/orienta-ai/skills-2SKILL.md
Skill: Autenticación de Usuarios
Propósito
Gestionar el registro, inicio de sesión, recuperación de contraseña y persistencia de sesión de usuarios en OrientaIA usando Supabase Auth.
Responsabilidades
- [ ] Registro de nuevos usuarios (email + contraseña)
- [ ] Login de usuarios existentes
- [ ] Logout (cierre de sesión)
- [ ] Recuperación de contraseña (forgot password)
- [ ] Validación de sesiones activas
- [ ] Protección de rutas privadas
- [ ] Gestión de tokens JWT
- [ ] Manejo de errores de autenticación
Entradas
Registro
Login
Forgot Password
Salidas
Registro Exitoso
Login Exitoso
Error
Restricciones
- Seguridad:
- Contraseñas: mínimo 8 caracteres, al menos 1 número
- Validación de email en formato correcto
- Rate limiting: máximo 5 intentos de login por IP en 15 minutos
- Tokens JWT con expiración (1 hora access, 30 días refresh)
- Negocio:
- Un email = una cuenta
- No permitir registro con emails desechables (opcional, fase 2)
- Confirmación de email obligatoria (fase 2)
- UX:
- Mensajes de error claros y en español
- No revelar si un email existe (seguridad)
- Feedback inmediato en validación de formularios
Dependencias
Externas
- Supabase Auth: Servicio de autenticación
- Supabase Database: Tabla
userscon metadata
Internas
- Frontend:
src/lib/auth/AuthContext.jsx- Context API para estado globalsrc/lib/auth/useAuth.js- Hook personalizadosrc/lib/api/authClient.js- Cliente API
- Backend:
netlify/functions/auth-register.js(opcional, puede usar Supabase directo)netlify/functions/auth-login.js(opcional)
Estados / Flujo
Flujo de Registro
Flujo de Login
Flujo de Sesión Persistente
Casos de Uso
1. Usuario Nuevo - Registro
- Actor: Visitante sin cuenta
- Objetivo: Crear cuenta para acceder a test vocacional
- Pasos:
- Visitante hace clic en "Crear cuenta"
- Completa formulario (email, contraseña)
- Submit → Validación frontend
- Backend registra en Supabase
- Redirección a dashboard con sesión activa
2. Usuario Existente - Login
- Actor: Usuario registrado
- Objetivo: Acceder a su cuenta
- Pasos:
- Usuario hace clic en "Iniciar sesión"
- Ingresa credenciales
- Submit → Backend valida
- Sesión creada → Redirección a dashboard
3. Usuario Olvidó Contraseña
- Actor: Usuario registrado que olvidó password
- Objetivo: Recuperar acceso a cuenta
- Pasos:
- Hace clic en "Olvidé mi contraseña"
- Ingresa email
- Recibe email con link de reset
- Crea nueva contraseña
4. Protección de Rutas
- Actor: Visitante no autenticado
- Objetivo: Evitar acceso a rutas privadas
- Pasos:
- Usuario intenta acceder a
/dashboard - AuthContext detecta que no hay sesión
- Redirección automática a
/login
Notas de Implementación
Opción 1: Supabase Auth Directo (Recomendado - MVP)
Ventajas:
- Menos código backend
- Auth manejado por Supabase (seguro y escalable)
- RLS (Row Level Security) nativo
Frontend (React):
Opción 2: Netlify Functions + Supabase (Fase 2)
Cuándo usar:
- Si necesitas lógica custom en registro (validaciones complejas)
- Si quieres ocultar Supabase del frontend
- Si necesitas logging/analytics en backend
Backend:
Decisiones Pendientes
- [ ] ¿Confirmar email obligatorio desde el inicio? (Recomendado: NO en MVP, SÍ en producción)
- [ ] ¿Permitir OAuth (Google) en Fase 1? (Recomendado: NO, solo email/password)
- [ ] ¿Rate limiting en frontend o backend? (Recomendado: Backend con Netlify Edge Functions)
- [ ] ¿Guardar metadata de usuario en tabla separada o en
auth.users? (Recomendado: user_metadata en Supabase)
Checklist de Implementación
Frontend
- [ ] Instalar
@supabase/supabase-js - [ ] Crear
src/lib/auth/supabaseClient.js - [ ] Crear
src/lib/auth/AuthContext.jsx - [ ] Crear
src/lib/auth/useAuth.jshook - [ ] Crear
src/pages/Auth/Login.jsx - [ ] Crear
src/pages/Auth/Register.jsx - [ ] Crear
src/pages/Auth/ForgotPassword.jsx - [ ] Crear componente
<ProtectedRoute> - [ ] Configurar rutas en
App.jsx
Backend
- [ ] Configurar variables de entorno en Netlify
VITE_SUPABASE_URLVITE_SUPABASE_ANON_KEY- [ ] Configurar Supabase:
- Habilitar Email Auth
- Configurar templates de emails
- Configurar RLS en tabla
users
Testing
- [ ] Probar registro con email válido
- [ ] Probar registro con email duplicado (error esperado)
- [ ] Probar login con credenciales correctas
- [ ] Probar login con credenciales incorrectas
- [ ] Probar persistencia de sesión (reload página)
- [ ] Probar logout
- [ ] Probar protección de rutas (
/dashboardsin auth)
Estado: 🟡 Pendiente de implementación Prioridad: 🔴 Alta (bloqueante para otras features) Estimación: 2-3 días de desarrollo
Última actualización: 2025-12-31
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/auth.skill.md
Popularity
- Installs
- 5
- Unique users
- 1
- Repository stars
- 80
- Repository forks
- 13
- 7-day trend score
- 27
Installs come from the vskill CLI. Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 19 Mar 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/devjaime/orienta-ai/skills-2)