# Autenticação

Autentique as solicitações do seu produto ao Beeuni.

Canonical page: https://beeuni.ai/docs/pt/sdk/auth

## Criar um cliente

O SDK chama `getToken` em cada solicitação. Seu aplicativo gerencia o armazenamento e a renovação dos tokens.

```ts
import { createBeeuni } from '@beeuni/sdk';

const beeuni = createBeeuni({
  backendUrl: 'https://api.beeuni.ai/v1',
  getToken: async () => process.env.BEEUNI_API_KEY ?? null,
});

const projects = await beeuni.projects.list();
```

## Escolher uma credencial

- Use uma chave API pessoal para scripts de servidor ou CI. Guarde-a no servidor e escolha o menor escopo disponível.
- Use uma conta de serviço para um agente ou outro chamador não humano. Atribua as funções de projeto necessárias; uma nova conta de serviço não tem acesso a projetos.
- Para um aplicativo que atua em nome dos usuários, use [Sign in with Beeuni](/docs/pt/sdk/sign-in). O manipulador do servidor gerencia tokens OAuth e sua renovação.

## Tratar solicitações rejeitadas

`401` indica credenciais ausentes, expiradas ou inválidas. `403` pode indicar permissões insuficientes ou um recurso desativado; leia o código de erro antes de tentar novamente.

Se a função de token armazena em cache um token rotativo, adicione `invalidate(rejectedToken)`. O SDK usa esse callback antes de repetir uma vez a solicitação rejeitada.

## Proteger credenciais

Não inclua chaves API de servidor no código do navegador, em URLs ou logs. Use seu servidor ou o proxy OAuth para solicitações do navegador. Revogue credenciais comprometidas em **Account → Tokens**.

[Exemplo completo](/docs/pt/sdk/example)
