Autenticação
Como funciona a autenticação da Storefront API.
Visão Geral
A Storefront API usa cookies httpOnly para autenticação. Quando o cliente faz login, o servidor define cookies de sessão automaticamente. Não é necessário gerenciar tokens manualmente.
Cookies de Sessão
Os cookies são definidos pelo servidor com as flags httpOnly, Secure e SameSite=Lax. Isso garante que:
- JavaScript no frontend não consegue acessar o token (proteção contra XSS)
- Cookies só são enviados em conexões HTTPS
- Cookies são enviados em navegações top-level e requests same-origin
Os cookies de sessão são isolados por tipo de usuário:
| Cookie | httpOnly | Descrição |
|---|---|---|
| authJwtClient | Sim | Token JWT do cliente (storefront). Não acessível por JavaScript. |
| sessionClient | Não | Indicador de sessão. Acessível por JavaScript para que o frontend saiba se o usuário está logado sem precisar fazer uma request à API. Valor: "1" ou JSON com dados da sessão. Definido automaticamente pelo servidor junto com o authJwtClient. |
| refreshToken | Sim | Token de refresh para renovação automática. SameSite=Strict. |
document.cookie para verificar sua presença.
Incluir Credenciais
Para que os cookies sejam enviados automaticamente, inclua credentials: 'include' em toda chamada fetch():
Domínios Customizados
Os cookies httpOnly funcionam corretamente com domínios customizados. O comportamento depende do domínio de origem:
| Origem | Cookie Domain | Comportamento |
|---|---|---|
*.acessocomercial.com | .acessocomercial.com | Compartilhado entre subdomínios da plataforma. |
| Domínio customizado | (não definido) | Cookie vinculado ao domínio exato da loja. Funciona nativamente pois o storefront faz requests para seu próprio domínio. |
domain são automaticamente limitados ao domínio exato que os definiu.
Fluxos de Autenticação
Login com Email/Senha
Use a mutation clientLogin com email e senha. O servidor retorna os dados do usuário e define o cookie de sessão.
Login com Google
Use a mutation clientGoogleLogin com o token OAuth do Google.
Cadastro
Use a mutation clientSignup para criar uma conta. O usuário é autenticado automaticamente após o cadastro.
Verificar Estado da Sessão
Use a query auth para verificar se o usuário está autenticado e obter os dados da sessão.
Renovação Automática de Sessão
Quando o token JWT expira, o servidor tenta renovar automaticamente usando o refreshToken. Se a renovação for bem-sucedida, novos cookies são definidos transparentemente. Se falhar, o usuário precisa fazer login novamente.
Erros de Autenticação
Quando uma operação requer autenticação e o usuário não está logado, a API retorna um erro com código UNAUTHENTICATED. Veja o Guia de Erros para todos os códigos.