> ## Documentation Index
> Fetch the complete documentation index at: https://developer.hubmessage.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Autenticação

> Como gerar e utilizar suas credenciais de API no Hub Message

export const frontendUrl = 'https://app.hubmessage.io';

export const projectName = 'Hub Message';

## Credenciais da API

O {projectName} trabalha com um par de chaves: **Public Key** e **Secret Key**. Ambas são geradas no menu **Segurança** do painel: [Segurança](\{frontendUrl}/app/security).

***

## Public Key

A Public Key é utilizada pelo SDK de conexão de canais ([`@hubmessage/connect`](https://www.npmjs.com/package/@hubmessage/connect)). Com ela, você pode [conectar canais](/channels/connect-channel) diretamente dentro do seu sistema, sem precisar acessar o painel.

<Note>
  A Public Key pode ser exposta no frontend da sua aplicação, pois ela tem permissões limitadas apenas à conexão de canais.
</Note>

Exemplo de uso:

```javascript theme={null}
import HubMessage from '@hubmessage/connect';

const client = HubMessage.newClient({
  publicKey: 'SUA_PUBLIC_KEY'
});
```

***

## Secret Key

A Secret Key é utilizada para autenticação em todas as APIs do {projectName}. Ela deve ser enviada no header `Authorization` como Bearer token em toda requisição.

<Warning>
  A Secret Key **nunca** deve ser exposta no frontend. Utilize-a apenas no backend da sua aplicação.
</Warning>

Exemplo de uso:

```bash theme={null}
curl -X GET https://api.hubmessage.io/whatsapp/businesses \
  -H "Authorization: Bearer SUA_SECRET_KEY"
```

***

## Resumo

| Chave          | Uso                                                                                                                                    | Onde usar           | Pode expor no frontend? |
| -------------- | -------------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ----------------------- |
| **Public Key** | [SDK de conexão de canais](/channels/connect-channel)                                                                                  | Frontend ou backend | Sim                     |
| **Secret Key** | Todas as chamadas de API ([canais](/channels/introduction), [templates](/templates/introduction), [mensagens](/messages/introduction)) | Apenas backend      | Não                     |

## Próximos passos

<CardGroup cols={2}>
  <Card title="Criar um canal" icon="plug" href="/channels/create-channel">
    Crie seu primeiro canal para começar a enviar mensagens.
  </Card>

  <Card title="Conectar canal via SDK" icon="code" href="/channels/connect-channel">
    Integre o fluxo de conexão no seu sistema.
  </Card>
</CardGroup>
