Saltar para o conteúdo

Primeiro acesso e senha

O primeiro acesso e a recuperação de senha seguem o mesmo fluxo: a aplicação pede o início do fluxo, a API devolve um link seguro (linkURL) e envia um PIN ao usuário por e-mail ou SMS. A aplicação conclui o fluxo enviando o PIN e a nova senha para esse link, em /auth/change.

    sequenceDiagram
    participant C as Cliente
    participant A as Riversoft STCP DirectLink API
    participant U as Usuário
    C->>A: GET /auth/firstaccess?u=<usuario> ou /auth/forget?u=<usuario>
    A-->>C: 200 OK com linkURL (/auth/change?k=...)
    A-->>U: PIN por e-mail ou SMS
    U->>C: Informa o PIN e a nova senha
    C->>A: POST linkURL (k na URL, p=PIN e z=nova senha no corpo)
    A-->>C: 200 OK
  

Inicie o fluxo

Para o primeiro acesso:

curl -i --get \
  --data-urlencode "u=$API_USER" \
  "$API_BASE/auth/firstaccess"

Para recuperar a senha:

curl -i --get \
  --data-urlencode "u=$API_USER" \
  "$API_BASE/auth/forget"

A resposta traz o link seguro em linkURL, e o usuário recebe o PIN por e-mail ou SMS. Guarde o linkURL para o próximo passo:

# use /auth/firstaccess no primeiro acesso
export CHANGE_URL=$(curl -s --get --data-urlencode "u=$API_USER" "$API_BASE/auth/forget" | jq -r .linkURL)

Nota

Se a validação Cloudflare Turnstile estiver habilitada no ambiente, envie também o header CF-Turnstile-Response. Veja Cloudflare Turnstile.

Defina a nova senha

Envie POST para a URL integral recebida, com os campos no corpo do formulário. A nova senha nunca vai na URL, e outros métodos são recusados com 405:

CampoDescrição
pPIN ou código exigido pelo fluxo.
zNova senha.
read -r -s -p 'PIN: ' CHANGE_PIN; printf '\n'
read -r -s -p 'Nova senha: ' NEW_PASSWORD; printf '\n'

curl -i -X POST \
  --data-urlencode "p=$CHANGE_PIN" \
  --data-urlencode "z=$NEW_PASSWORD" \
  "$CHANGE_URL"

Resultado esperado: resposta 200 com status 0. O usuário passa a entrar com a nova senha.

Atenção

O link já contém os parâmetros de identificação e validade, que são validados junto com a nova senha. Use o link integral emitido para aquele usuário e aquela operação; ele expira.

Contratos completos em Referência: Autenticação.