VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API legada/Guia rápido/Primeiros passos

POSTLink de login

POST /api/auth gera uma chave de sessão e um link que autentica o usuário na loja sem digitar a senha.

O recurso Auth dá acesso autenticado a áreas da loja sem que o usuário digite as credenciais em um formulário de login. É útil para criar links autenticados e enviá-los por e-mail ou por outros canais. Você envia o e-mail do usuário (e, se quiser, uma URL de destino) e recebe de volta uma chave de sessão e o link pronto para uso.

O recurso aceita apenas o método POST.

Pontos-chave
  • Só o método POST é aceito neste endpoint.
  • O e-mail pode ser o de um administrador ou o de um cliente. Se o e-mail não estiver cadastrado, a resposta é um erro 404.
  • A resposta traz key (a chave de sessão) e link (o link de acesso, que leva a chave no parâmetro ekey).
  • Se você enviar redirect_url, o link leva o usuário a esse endereço logo após o login.
  • Qualquer parâmetro que não esteja na lista é ignorado.

Gerar o link de login

POST/api/authPública

Gera a chave de sessão e o link de login de um usuário

Corpo da requisição

emailstringobrigatório
E-mail de login do usuário. Pode ser o e-mail de um administrador ou de um cliente. Se o e-mail não estiver cadastrado, a API devolve um erro 404.
redirect_urlstring
URL para a qual o usuário é redirecionado logo depois de seguir o link de login.

Exemplo de requisição

bash
curl -u "$EMAIL:$API_KEY" \
  -X POST "$BASE_URL/api/auth" \
  -H "Content-Type: application/json" \
  -d '{
  "email": "admin@example.com",
  "redirect_url": "https://www.example.com/dashboard"
}'

Resposta

200Link gerado
json
{
  "key": "a49a3069b7f1641e4a27feb3b1c00f95",
  "link": "https://www.venddor.com.br/auth/?ekey=a49a3069b7f1641e4a27feb3b1c00f95"
}

Quando a requisição inclui redirect_url, o link leva essa URL como parâmetro e, ao seguir o link, o usuário é redirecionado de imediato para o endereço informado:

200Link gerado com redirecionamento
json
{
  "key": "a49a3069b7f1641e4a27feb3b1c00f95",
  "link": "https://www.venddor.com.br/auth/?ekey=a49a3069b7f1641e4a27feb3b1c00f95&redirect_url=https://example.com/callback"
}

Campos da resposta

keystring
Chave de sessão do usuário autenticado.
linkstring
Link de autenticação que o usuário deve seguir. Contém a chave de sessão no parâmetro ekey.

Fluxo de autenticação

  1. Envie a requisição

    Faça um POST em /api/auth com os parâmetros necessários.

  2. Receba o link de login

    A API gera um link seguro, com validade limitada, e o devolve na resposta.

  3. O usuário segue o link

    Ao abrir o link, o usuário é autenticado sem precisar digitar a senha.

  4. Redirecionamento

    Se você informou redirect_url, o usuário é levado a esse endereço depois do login.

Erros

StatusQuando
404 Not FoundO e-mail informado não está cadastrado.
400 Bad RequestFaltam parâmetros obrigatórios.
401 UnauthorizedCredenciais inválidas.
429 Too Many RequestsLimite de requisições excedido.

Os códigos 400, 401 e 429 vêm da descrição do endpoint de autenticação mostrada mais abaixo nesta página; o 404 vem da descrição dos parâmetros. Os demais códigos estão em Erros.

Validade e uso único

Os links de login têm validade limitada (normalmente 24 horas) e só podem ser usados uma vez. Trate-os como informação sensível e não os compartilhe publicamente.

Boas práticas

  • Confirme que o e-mail existe no seu sistema antes de enviar a requisição de autenticação.
  • Use HTTPS em toda a comunicação com a API.
  • Defina URLs de redirecionamento que levem o usuário a destinos seguros e esperados.
  • Considere implementar um limite de requisições do seu lado para evitar abuso da autenticação.
  • Para testes, crie um usuário de teste dedicado em vez de usar as credenciais de administrador de produção.

Outras descrições do mesmo endpoint

A documentação de referência descreve POST /api/auth de três formas. A primeira é a que está acima. As outras duas aparecem em páginas próprias, com parâmetros e respostas diferentes, e são reproduzidas aqui como a documentação as apresenta.

Autenticação por e-mail e senha

Nesta descrição, o endpoint solicita uma chave e um link de acesso à API da Venddor, e apenas POST é aceito. Os parâmetros são:

Corpo da requisição

emailstringobrigatório
E-mail do usuário cadastrado.
passwordstringobrigatório
Senha do usuário.
json
{
  "email": "user@example.com",
  "password": "your_secure_password"
}

Resposta de exemplo:

json
{
  "status": "success",
  "data": {
    "api_key": "abcdef123456789abcdef123456789",
    "expires_at": "2025-05-16T12:00:00Z",
    "user_id": 12345
  }
}
StatusDescrição
200 OKAutenticação bem-sucedida
400 Bad RequestParâmetros obrigatórios ausentes
401 UnauthorizedCredenciais inválidas
429 Too Many RequestsLimite de requisições excedido

Guarde a chave de API em local seguro e envie-a no cabeçalho Authorization em todas as requisições seguintes.

Autenticação por id do usuário

A descrição da entidade Auth mostra ainda um formato em que o usuário é indicado pelo id e o link pode ter validade configurada:

Corpo da requisição

user_idintegerobrigatório
Id do usuário a autenticar.
redirect_urlstring
URL para a qual o usuário é redirecionado depois da autenticação.
expiry_timeintegerpadrão: 3600
Tempo, em segundos, até o link expirar.
bash
curl -X POST \
  https://www.venddor.com.br/api/auth \
  --user admin@example.com:APIkey \
  -H 'Content-Type: application/json' \
  -d '{
    "user_id": 42,
    "redirect_url": "https://www.venddor.com.br/admin/dashboard",
    "expiry_time": 7200
  }'

Resposta de exemplo:

json
{
  "session_key": "AbCdEf123456",
  "auth_url": "https://www.venddor.com.br/auth/login?key=AbCdEf123456&redirect_url=https%3A%2F%2Fwww.venddor.com.br%2Fadmin%2Fdashboard",
  "expiry": "2025-04-15T14:34:56Z"
}

Para gerar um link de login direto para um usuário, basta enviar o user_id:

bash
curl -X POST \
  https://www.venddor.com.br/api/auth \
  --user admin@example.com:APIkey \
  -H 'Content-Type: application/json' \
  -d '{
    "user_id": 42
  }'

Para um link de redefinição de senha com validade mais curta, envie o redirect_url da página de redefinição e um expiry_time menor:

bash
curl -X POST \
  https://www.venddor.com.br/api/auth \
  --user admin@example.com:APIkey \
  -H 'Content-Type: application/json' \
  -d '{
    "user_id": 42,
    "redirect_url": "https://www.venddor.com.br/account/reset_password",
    "expiry_time": 1800
  }'
Segurança

Links de autenticação dão acesso completo às contas dos usuários. Use sempre HTTPS nessas requisições e envie os links com segurança apenas aos destinatários corretos. Ao enviar links por e-mail, prefira um texto de link descritivo que explique para onde ele leva.

Veja também

  • Autenticação
  • Erros
  • Convenções
Anterior
Perguntas frequentes
Próxima
Pedidos
Nesta página
  • Gerar o link de login
  • Exemplo de requisição
  • Resposta
  • Fluxo de autenticação
  • Erros
  • Boas práticas
  • Outras descrições do mesmo endpoint
  • Autenticação por e-mail e senha
  • Autenticação por id do usuário
  • Veja também