Acesso Comercial / Docs / Storefront / API
Ctrl K
MUTATION

clientLogin

Autentica um cliente com email e senha. Define cookies httpOnly na resposta para manter a sessão.

Input

ClientLoginMutationInput!

CampoTipoDescrição
hostnameString!Hostname da loja.
emailString!E-mail do cliente.
passwordString!Senha do cliente.

Retorno

CampoTipoDescrição
tokenStringToken de autenticação (definido via cookie automaticamente).
userAuthUserDados do usuário autenticado.

Mutation

GraphQL
mutation Login($input: ClientLoginMutationInput!) {
  clientLogin(input: $input) {
    token
    user {
      id
      name
      email
    }
  }
}

Variables

JSON
{
  "input": {
    "hostname": "minha-loja",
    "email": "cliente@email.com",
    "password": "senha123"
  }
}

Resposta

JSON
{
  "data": {
    "clientLogin": {
      "token": "eyJhbGciOiJIUzI...",
      "user": {
        "id": "user123",
        "name": "João Silva",
        "email": "cliente@email.com"
      }
    }
  }
}

Fetch

JavaScript
const response = await fetch(
  '/graphql',
  {
    method: 'POST',
    credentials: 'include',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      query: `mutation($input: ClientLoginInput!) {
        clientLogin(input: $input) {
          user { id name email }
        }
      }`,
      variables: {
        input: {
          hostname: "minha-loja",
          email: "cliente@email.com",
          password: "senha123"
        }
      }
    })
  }
);
const data = await response.json();

cURL

Bash
curl -X POST https://minha-loja.com/graphql \
  -H "Content-Type: application/json" \
  -c cookies.txt \
  -d '{"query":"mutation { clientLogin(input: { hostname: \"minha-loja\", email: \"cliente@email.com\", password: \"senha123\" }) { user { id name email } } }"}'