Each PRD documents real UI/API processes, service methods, states and gaps. Co-authored-by: Cursor <cursoragent@cursor.com>
2.3 KiB
2.3 KiB
PRD — Usuários, senha e sessão
| Campo | Valor |
|---|---|
| Produto | Pizza Digital |
| Versão app auditada | v0.5.0 |
| Ambiente | https://pizza.itecnologys.com · VM125 · loja pizza-digital-piloto |
| Spec de origem | docs/SPEC-USUARIOS.md |
| Módulo | Auth + equipe |
| Rotas UI | /login /admin/equipe /forgot-password /reset-password |
| APIs | /api/auth/* /api/users/* |
| Data | 2026-11-09 |
| Estilo | PRD operacional detalhado (visão de desenvolvedor) |
| Audiência | Dev / QA / Product |
Como ler: cada seção descreve o processo real (o que o sistema faz hoje), com passos de usuário, chamadas de API, regras de negócio e estados. Status: ✅ construído · ⚠️ parcial · ⏳ especificado / não entregue · 🐛 gap observado.
1. Entidades
User, AuthToken, PushDevice, NotifyLog, UserCapability
2. Processo — login
- UI
/login(demo:pdv@pizza.local/805353+ storeSlug) POST /api/auth/login{ email, password, storeSlug }- Valida hash bcrypt; incrementa
failedLoginAttempts - 5 falhas →
lockedUntil+15 min - Sucesso → JWT + user + capabilities
GET /api/auth/mepara refresh de sessão
3. Processo — política de senha
GET /api/auth/password-policy- Regras: ≥8, 1 upper, 1 lower, 1 dígito, sem local-part email
- Código:
password-policy.ts
4. Processo — CRUD equipe
- Cap
staff.viewlistaGET /api/users - Cap
staff.managecriaPOST /api/users(role, áreas, jobTitle) - Criar gestor extra exige
owners.manage - Pode aplicar template na criação
POST /api/users/:id/send-resetdispara token reset
5. Processo — forgot / reset
POST /api/auth/forgot-password→ resposta genérica- Token
password_resetTTL 60 min POST /api/auth/reset-passwordconsome token, limpa lockoutPOST /api/auth/change-password(autenticado)
6. Aceite
- ✅ Login/lockout/policy/CRUD/reset stub
- ⏳ SMTP/push produção (RF-USR-10)
7. Camada de serviço (AuthService)
| Método | Fluxo |
|---|---|
login |
storeSlug+email+senha → JWT; lockout |
me |
Rehidrata user+caps |
requestPasswordReset |
Token genérico |
resetPassword |
Consome token |
changePassword |
Autenticado |
UsersService: list/meta/create/update/sendReset/pushDevice.