Password Recovery Request
POST/company/auth/recovery
Endpoint para solicitar recuperação de senha de usuários corporativos.
Executa as seguintes operações:
- Valida o formato do e-mail
- Busca o usuário no banco de dados
- Gera um token de recuperação único
- Envia e-mail com link para redefinir a senha
Fluxo detalhado:
- Cliente envia e-mail no formato JSON
- Servidor valida o formato do e-mail (401 se inválido)
- Busca usuário por e-mail
- Gera token aleatório
- Armazena token no banco de dados associado ao usuário
- Envia e-mail com link contendo o token
- O link redireciona para formulário de nova senha
Segurança:
- Por segurança, sempre retorna 200 OK para não revelar e-mails registrados
- Os tokens têm validade limitada
- Cada token é de uso único
- Requer HTTPS
- Verifica também em usuários desabilitados (soft delete)
Comportamento especial:
- Se o e-mail não existir: retorna 200 com
USER_NOT_FOUND - Se o usuário estiver desabilitado: retorna 200 com
USER_DISABLED - Usuários de demonstração (cia@testing.com, ciamu@testing.com): retornam 200 sem enviar e-mail
Exemplo de requisição:
{
email: usuario@empresa.com
}
Exemplos de resposta:
E-mail válido encontrado:
{
op: recovery,
message: RECOVERY_EMAIL_SENT,
email: usuario@empresa.com
}
E-mail não encontrado (por segurança retorna 200):
{
op: recovery,
message: USER_NOT_FOUND,
email: naoexiste@empresa.com
}
Usuário desabilitado:
\{
op: recovery,
message: USER_DISABLED,
email: usuario@empresa.com
<Heading
id={"request"}
as={"h2"}
className={"openapi-tabs__heading"}
children={"Request"}
>
</Heading>
<ParamsDetails
parameters={[{"name":"lang","in":"query","description":"Idioma para o e-mail de recuperação","required":false,"schema":{"type":"string","default":"en","enum":["en","es"]}}]}
>
</ParamsDetails>
<RequestSchema
title={"Body"}
body={{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"E-mail do usuário para recuperar senha","example":"usuario@empresa.com"}},"required":["email"],"title":"RecoveryRequest"}}},"required":true}}
>
</RequestSchema>
<StatusCodes
id={undefined}
label={undefined}
responses={{"200":{"description":"Processado (sempre retorna 200 por segurança)","content":{"application/json":{"schema":{"type":"object","properties":{"op":{"type":"string","enum":["recovery"],"example":"recovery"},"message":{"type":"string","enum":["RECOVERY_EMAIL_SENT","USER_NOT_FOUND","USER_DISABLED"],"example":"RECOVERY_EMAIL_SENT"},"email":{"type":"string","format":"email","example":"usuario@empresa.com"}}}}},"headers":{}},"401":{"description":"E-mail não fornecido ou formato inválido","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"integer","example":401},"message":{"type":"string","example":"NOT_VALID"}}}}},"headers":{}}}}
>
</StatusCodes>