Password Reset
Doc da API: ver APIs
Diagrama de sequencia
sequenceDiagram
participant Client as Cliente Front
participant Ctrl as PasswordResetController
participant Svc as PasswordResetService
participant AuthDB as PostgreSQL Auth
participant Logs as logs_password_reset
participant Tpl as TemplateResolver
participant SMTP as SmtpMailService
Client->>Ctrl: POST /api/v1/auth/password-reset/request
Ctrl->>Svc: requestReset email
Svc->>AuthDB: find user ativo
alt user inexistente ou inativo
Svc-->>Client: 200 mensagem generica
else OK
Svc->>Tpl: resolve password_reset
Svc->>Svc: generate code bcrypt hash
Svc->>Logs: invalidate tokens antigos + save novo
Svc->>Svc: build link com token cifrado
Svc->>SMTP: send email HTML
Svc-->>Client: 200 mensagem generica
end
Client->>Ctrl: GET /api/v1/auth/password-reset/token
Ctrl->>Svc: decode token
Svc-->>Client: 200 dados do token
Client->>Ctrl: POST /api/v1/auth/password-reset/confirm
Ctrl->>Svc: confirmReset
Svc->>Logs: validate hash nao usado nao expirado
Svc->>AuthDB: update password bcrypt
Svc->>Logs: mark usado
Svc-->>Client: 204