Login seguro com cookies httpOnly. Sem tokens no frontend, sem gerenciamento manual de sessão.
A Storefront API usa cookies httpOnly para autenticação. Isso significa que o token de sessão nunca é acessível por JavaScript no navegador — proteção contra XSS por design.
clientLogin com email e senha. O servidor seta o cookie automaticamente na resposta.credentials: 'include'. Zero gerenciamento de tokens.logout limpa os cookies no servidor.const response = await fetch('/graphql', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
query: `mutation($input: ClientLoginMutationInput!) {
clientLogin(input: $input) { auth hostname }
}`,
variables: {
input: {
email: "cliente@email.com",
password: "senha123",
hostname: "minhaloja"
}
}
}),
credentials: 'include'
}); credentials: 'include' em todas as chamadas fetch. Sem isso, os cookies de autenticação não serão enviados nem recebidos.
Após o login, todas as requisições subsequentes com credentials: 'include' já estão autenticadas:
const cart = await fetch('/graphql', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
query: `{ shoppingCart(hostname: "minhaloja") {
totalPrice
products { title quantity }
} }`
}),
credentials: 'include'
}); await fetch('/graphql', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
query: `mutation($input: ClientSignupMutationInput!) {
clientSignup(input: $input) { auth hostname }
}`,
variables: {
input: {
name: "João Silva",
email: "joao@email.com",
password: "senha123",
hostname: "minhaloja"
}
}
}),
credentials: 'include'
}); await fetch('/graphql', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
query: `mutation($input: LogoutMutationInput!) {
logout(input: $input) { success }
}`,
variables: { input: { hostname: "minhaloja" } }
}),
credentials: 'include'
}); Também disponível para login/signup via Google OAuth:
clientGoogleLogin — Login com conta Google existenteclientGoogleSignup — Cadastro via GooglerequestResetPassword — Solicitar email de redefinição de senharesetPassword — Redefinir a senha com token recebido por emailconfirmUser — Confirmar cadastro do usuáriorefreshSession — Renovar sessão ativa