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

# Tokens de Acesso Externo

> Permita que pipelines de CI, webhooks e outros serviços automatizados acessem seu app Replit privado sem fazer login.

Os tokens de acesso externo são tokens bearer que você cria para um App Replit específico.
Eles permitem que serviços automatizados — pipelines de CI, webhooks, verificadores de status, bots do Slack,
scripts internos — acessem o app mesmo quando sua URL está bloqueada por
[uma URL de Dev Privada](/references/publishing/private-deployments)
ou por um [Deployment Privado](/references/publishing/private-deployments).

Trate cada token como uma senha: qualquer pessoa que o possua pode acessar seu app até que o token expire ou seja revogado.

<Note>
  Os tokens de acesso externo estão disponíveis nos planos Replit Core e Pro.
  Clientes Enterprise devem solicitar a ativação ao Replit antes que o recurso seja
  habilitado para o workspace. Os tokens aparecem nas configurações de publicação
  somente depois que o deployment for tornado privado.
</Note>

## Quando usar um token

Use um token de acesso externo quando algo *fora* do seu navegador precisar
chamar seu App Replit privado. Casos comuns:

* Um workflow do GitHub Actions que executa um smoke test contra sua URL de dev a
  cada commit.
* Um monitor de uptime (Better Stack, Pingdom, UptimeRobot) acessando um
  endpoint de saúde no seu app publicado.
* Um receptor de webhook — Stripe, Slack, GitHub — enviando POST para um Deployment Privado.
* Uma chamada `curl` ou `fetch` da máquina de um colega durante a depuração.

Os tokens de acesso externo são projetados para **tráfego de API**, não para abrir páginas
de UI em um navegador. Aplicações de página única (Vite, Next.js, etc.) carregam pacotes
JavaScript em requisições subsequentes que não carregarão seu token, então essas
requisições falharão. Para navegação interativa, faça login normalmente.

## Ambientes de token

Cada token está vinculado a um ambiente:

| Ambiente      | Onde funciona                                                            | Use para                                              |
| :------------ | :----------------------------------------------------------------------- | :---------------------------------------------------- |
| `Development` | A URL de dev do workspace do app (`*.replit.dev`)                        | Acessar um Repl em execução durante o desenvolvimento |
| `Production`  | O deployment publicado do app (`*.replit.app` e domínios personalizados) | Acessar um Deployment Privado de serviços externos    |

Um token de `Production` está vinculado ao deployment *publicado atualmente*. Se você
republicar em um novo deployment, os tokens de produção existentes deixarão de funcionar
e você precisará criar novos.

## Criar um token de acesso externo

<Steps>
  <Step>
    Abra o app que deseja expor e abra a ferramenta **Publishing**.
  </Step>

  <Step>
    Selecione **Adjust settings** para expandir as opções de reimplantação.
  </Step>

  <Step>
    Na seção **Security**, encontre **External access tokens**.
  </Step>

  <Step>
    Selecione **Create access token** e preencha:

    * **Label** (opcional): um nome curto para que você possa reconhecer o token depois,
      como `CI` ou `Stripe webhook`. Máximo de 120 caracteres.
    * **Environment**: escolha `Development` ou `Production` com base em onde o
      serviço que fará a chamada precisa acessar o app.
    * **Expires after**: escolha um tempo de vida — `1 hour`, `24 hours`, `7 days`,
      `30 days`, `3 months`, `1 year` ou `5 years`. Escolha a janela mais curta
      que atenda à necessidade. Não há opção "never expires".
  </Step>

  <Step>
    Selecione **Create**.
  </Step>
</Steps>

O Replit exibe o token **uma única vez**. Copie-o agora — depois de fechar a janela,
não há como ver o token novamente. Se você o perder, revogue esse token e crie
um novo.

A tela de revelação oferece duas ações de cópia:

* **Copy query parameter** — copia `?project-protection-bypass=<token>` para
  acrescentar a uma URL. Útil para verificações rápidas com `curl`.
* **Copy token only** — copia o token bruto, adequado para enviar em um
  cabeçalho `Authorization: Bearer`.

<Info>
  Criar seu primeiro token ativa automaticamente o acesso externo para o app, caso
  ainda não estivesse ativado. Sem proteção, o token não tem nada a contornar.
</Info>

## Usar um token

Apresente o token de uma de duas formas:

### Cabeçalho de autorização (recomendado)

```bash theme={null}
curl -H "Authorization: Bearer <token>" https://your-app.replit.app/health
```

Esta é a escolha certa para quase tudo — webhooks, scripts de CI,
chamadas backend-para-backend. O token nunca aparece em logs que capturam URLs
e nunca fica no histórico do navegador.

### Parâmetro de consulta

```bash theme={null}
curl "https://your-app.replit.app/health?project-protection-bypass=<token>"
```

Use o formato de parâmetro de consulta somente quando não for possível definir cabeçalhos — por exemplo,
um serviço que aceita apenas uma URL. URLs com tokens frequentemente acabam em logs de proxy,
histórico do shell e capturas de tela, portanto, prefira o formato de cabeçalho sempre que possível.

## Gerenciar tokens existentes

A seção **External access tokens** lista todos os tokens que você criou para
o app — os mais recentes primeiro — junto com o rótulo, ambiente, data de criação,
expiração e status de revogação. Os últimos caracteres do token são exibidos
em cada linha para ajudá-lo a distinguir os tokens, já que o valor completo
só é exibido no momento da criação.

Você só vê os tokens que *você* criou. Os tokens de outros colaboradores são privados
para eles, mesmo que você seja o proprietário do app.

## Revogar um token

Revogue um token sempre que ele não for mais necessário, ou assim que suspeitar que
ele pode ter vazado. Para revogar:

<Steps>
  <Step>
    Abra a seção **External access tokens** nas configurações de publicação do app.
  </Step>

  <Step>
    Encontre o token na lista e selecione o ícone de lixeira.
  </Step>

  <Step>
    Confirme a revogação.
  </Step>
</Steps>

A revogação é **imediata e irreversível**. Qualquer tráfego que ainda use o
token começa a ser rejeitado em segundos. Se precisar de acesso novamente, crie
um novo token.

Você só pode revogar tokens que criou. Remover um colaborador do
workspace revoga automaticamente os tokens que ele criou para aquele app.

## Mantenha seus tokens seguros

Os tokens de acesso externo são credenciais. Trate-os com o mesmo cuidado que
daria a uma chave de API ou senha.

### O que fazer

* **Armazene tokens em um gerenciador de secrets** — secrets do GitHub Actions, o cofre do
  seu fornecedor de CI, o armazenamento de secrets do seu provedor de nuvem ou um gerenciador de senhas.
  Nunca os commite em um repositório.
* **Use prazos curtos** quando possível. Um token de 7 dias para uma
  integração pontual é mais seguro do que um token de 5 anos deixado por aí.
* **Rotule cada token** para que você saiba para que serve e se ainda está
  em uso. Tokens sem rótulo são os primeiros a vazar e os últimos a ser revogados.
* **Crie um token separado por consumidor.** Um token por job de CI, um por
  fonte de webhook, um por verificação de uptime. Quando algo for comprometido — ou
  um fornecedor não for mais necessário — você revoga apenas aquele.
* **Prefira o cabeçalho `Authorization`** em vez de parâmetros de consulta para que o token
  não vaze por logs de URL, histórico do navegador ou cabeçalhos de referência.
* **Revogue imediatamente** se um token puder ter sido exposto — um log vazado,
  um commit em repositório público, um compartilhamento de tela, o laptop de um ex-funcionário.
  A revogação entra em vigor imediatamente; crie um substituto depois.

### O que não fazer

* **Não compartilhe um token entre colegas ou serviços.** Se dois sistemas compartilham
  um token, você não pode revogar um sem quebrar o outro.
* **Não cole tokens em chats, e-mails, capturas de tela ou rastreadores de issues.**
  Esses canais são arquivados, indexados e compartilhados de formas imprevisíveis.
* **Não incorpore tokens em código do lado do cliente** — apps de navegador, apps móveis,
  binários de desktop. Qualquer coisa enviada para o dispositivo de um usuário deve ser considerada
  pública.
* **Não dependa de tokens para sessões de navegador.** Tokens funcionam para chamadas de API,
  não para carregar SPAs em uma aba do navegador. Use um login normal do Replit para isso.
* **Não escolha expiração de 5 anos por padrão.** Corresponda o tempo de vida a quanto tempo
  o consumidor realmente precisa de acesso.

## Solução de problemas

<Accordion title="Meu token de produção parou de funcionar repentinamente">
  Os tokens de produção estão vinculados a um deployment publicado específico. Se você
  republicou o app — por exemplo, alterando o tipo de deployment ou
  destruindo e recriando o deployment — os tokens de produção existentes são
  invalidados. Crie um novo token nas configurações do novo deployment.
</Accordion>

<Accordion title="Meu token funciona para `curl`, mas meu navegador ainda mostra a página de login">
  Os tokens de acesso externo são destinados ao tráfego de API, não para sessões de
  navegador. Quando um aplicativo de página única é carregado em um navegador, a requisição HTML
  inicial pode carregar o token via parâmetro de consulta, mas as requisições subsequentes
  por pacotes JavaScript, CSS e chamadas de API não o incluirão e serão
  rejeitadas. Para navegar no app interativamente, faça login no Replit normalmente.
</Accordion>

<Accordion title="Perdi o token — posso vê-lo novamente?">
  Não. O Replit exibe o token apenas uma vez, no momento da criação. A visualização de lista mostra
  metadados (rótulo, ambiente, expiração, últimos caracteres) mas nunca o
  valor completo do token. Se o perdeu, revogue esse token e crie um novo.
</Accordion>

## Próximos passos

* [Deployments Privados](/references/publishing/private-deployments):
  o recurso de controle de acesso subjacente que esses tokens contornam.
* [Gerenciamento de Acesso ao App Replit](/teams/identity-and-access-management/repl-access-management):
  gerencie quais usuários do Replit podem fazer login nos seus apps privados.
