Pular para o conteúdo principal

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