Skip to main content

Solicitude de Recuperación de Contrasinal

POST 

/company/auth/recovery

Endpoint para solicitar a recuperación de contrasinal de usuarios de empresa.
Realiza as seguintes operacións:

  1. Valida o formato do email
  2. Busca o usuario na base de datos
  3. Xerar un token de recuperación único
  4. Envía email con enlace para restablecer o contrasinal

Fluxo detallado:

  1. O cliente envía o email en formato JSON
  2. O servidor valida o formato do email (401 se é inválido)
  3. Busca o usuario por email
  4. Xerar un token aleatorio
  5. Almacena o token na base de datos asociado ao usuario
  6. Envía email cun enlace que contén o token
  7. O enlace redirixe a un formulario para un novo contrasinal

Seguridade:

  • Por seguridade, sempre retorna 200 OK para non revelar emails rexistrados
  • Os tokens teñen validez limitada
  • Cada token é de un só uso
  • Require HTTPS
  • Verifica tamén en usuarios deshabilitados (soft delete)

Comportamento especial:

  • Se o email non existe: retorna 200 con USER_NOT_FOUND
  • Se o usuario está deshabilitado: retorna 200 con USER_DISABLED
  • Usuarios demo (cia@testing.com, ciamu@testing.com): retornan 200 sen enviar email

Exemplo de petición:

\{  
email: usuario@empresa.com
\}

Exemplos de resposta:

Email válido atopado:

\{  
op: recovery,
message: RECOVERY_EMAIL_SENT,
email: usuario@empresa.com
\}

Email non atopado (por seguridade retorna 200):

\{  
op: recovery,
message: USER_NOT_FOUND,
email: noexiste@empresa.com
\}

Usuario deshabilitado:

\{  
op: recovery,

<Heading
id={"request"}
as={"h2"}
className={"openapi-tabs__heading"}
children={"Request"}
>
</Heading>

<ParamsDetails
parameters={[{"name":"lang","in":"query","description":"Idioma para o correo de recuperación","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":"Correo electrónico do usuario para recuperar o contrasinal","example":"usuario@empresa.com"}},"required":["email"],"title":"RecoveryRequest"}}},"required":true}}
>

</RequestSchema>

<StatusCodes
id={undefined}
label={undefined}
responses={{"200":{"description":"Procesado (sempre retorna 200 por seguridade)","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":"Correo electrónico non fornecido ou formato non válido","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"integer","example":401},"message":{"type":"string","example":"NOT_VALID"}}}}},"headers":{}}}}
>

</StatusCodes>