Como gerar, usar e gerenciar tokens de API para a Office API.
A Office API utiliza tokens de API no formato sk_live_... para autenticação. Diferente da Storefront API (que usa cookies httpOnly), os tokens são enviados explicitamente no header Authorization.
Tokens são gerados pelo painel administrativo (Office) da sua loja. Para gerar via GraphQL no painel admin:
mutation {
generateApiToken(input: {
hostname: "minha-loja"
name: "ERP Produção"
permissions: ["products:read", "products:write"]
}) {
rawToken
tokenPrefix
name
}
} rawToken) é exibido apenas uma vez, no momento da criação. Armazene-o imediatamente em um local seguro (variável de ambiente, vault, etc). Após isso, apenas o prefixo será visível.
Inclua o token no header Authorization de todas as requisições:
fetch('https://office.acessocomercial.com/api/office/graphql', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
},
body: JSON.stringify({ query, variables })
}) Cada token possui um conjunto de permissões que controla quais operações são permitidas:
| Permissão | Descrição | Operações |
|---|---|---|
products:read | Leitura de produtos | product, products |
products:write | Escrita de produtos | insertProduct, updateProduct, deleteProduct, updateAvailableQuantity |
Para revogar um token comprometido ou não utilizado:
mutation {
revokeApiToken(input: {
tokenId: "QXBpVG9rZW46YWJjMTIz..."
hostname: "minha-loja"
}) {
success
}
} Para ver todos os tokens ativos de uma loja (mostra apenas o prefixo, não o token completo):
query {
apiTokens(hostname: "minha-loja") {
id
name
maskedToken
permissions
lastUsedAt
createdAt
}
}