Password reset e first-access
Módulo: PasswordResetModule
Auth: rotas públicas (sem Bearer)
Tag Swagger: Central Auth — Autenticação
Password reset — /api/v1/auth/password-reset
| Método | Rota | Descrição |
|---|---|---|
POST | /request | Solicitar redefinição (envia e-mail com link) |
GET | /token | Decifrar token do link de reset |
POST | /confirm | Confirmar nova palavra-passe |
POST .../request
Gera código de 6 dígitos (TTL ~15 min via PASSWORD_RESET_CODE_TTL_SECONDS), grava logs_password_resets, envia SMTP com template lock_reset. O {{link}} leva ?token= AES-256-GCM.
Resposta 200 (não use o status para enumerar e-mails).
GET .../token?token=...
Decifra o token do link /reset-password?token=.... 200: email, codigo, expiraEm. 400 inválido/expirado.
POST .../confirm
Body: token ou par email + codigo, mais a nova senha. 204. 404 utilizador inexistente.
First access — /api/v1/auth/first-access
Fluxo de definição de palavra-passe no primeiro acesso (welcome).
| Método | Rota | Descrição |
|---|---|---|
GET | /token | Decifrar token do link de primeiro acesso |
POST | /confirm | Confirmar palavra-passe (204) |
Dependências
- SMTP (
smtpConfig) para envio de e-mails - Templates globais (
email-templates) — ver 13-email-templates.md - Redis (quando configurado) para códigos/rate-limit conforme implementação