> ## 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.

Tokens de acesso externo são bearer tokens criados para um Replit App 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á protegida 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é
o token expirar ou ser revogado.

<Note>
  Tokens de acesso externo estão disponíveis nos planos Replit Core e Pro.
  Clientes Enterprise devem solicitar a ativação à Replit antes que o recurso seja
  habilitado em seu workspace. Os tokens só aparecem nas configurações de publicação
  após o deployment ser definido como privado.
</Note>

## Quando usar um token

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

* Um workflow do GitHub Actions que executa um smoke test na 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 — fazendo POST para um Deployment Privado.
* Uma chamada `curl` ou `fetch` da máquina de um colega de equipe durante a depuração.

Tokens de acesso externo foram projetados para **tráfego de API**, não para abrir páginas de
interface em um navegador. Apps de página única (Vite, Next.js, etc.) carregam bundles de
JavaScript em requisições subsequentes que não carregarão seu token, portanto 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                                                          | Usar 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 customizados) | Acessar um Deployment Privado a partir de serviços externos |

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

## Criar um token de acesso externo

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

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

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

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

    * **Label** (opcional): um nome curto para identificar o token depois,
      como `CI` ou `Stripe webhook`. Máximo de 120 caracteres.
    * **Environment**: escolha `Development` ou `Production` conforme onde o
      serviço chamador 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 "nunca expira".
  </Step>

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

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

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

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

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

## Usar um token

Apresente o token de uma das duas formas:

### Cabeçalho Authorization (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-to-backend. O token nunca aparece em logs que capturam URLs
e nunca fica no histórico do seu navegador.

### Query parameter

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

Use o formato de query parameter apenas 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 — do mais recente ao mais antigo — juntamente com seu label, 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 não for mais necessário, ou assim que suspeitar que
pode ter sido exposto. Para revogar:

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

  <Step>
    Localize 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çará 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 esse app.

## Mantenha seus tokens seguros

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

### Faça

* **Armazene tokens em um gerenciador de segredos** — segredos do GitHub Actions, o cofre do seu
  fornecedor de CI, o repositório de segredos do seu provedor de nuvem ou um gerenciador de senhas.
  Nunca os comite em um repositório.
* **Use tempos de vida curtos** quando possível. Um token de 7 dias para uma
  integração pontual é mais seguro do que um token de 5 anos deixado em aberto.
* **Rotule cada token** para que você no futuro saiba para que serve e se ainda
  está em uso. Tokens sem rótulo são os primeiros a vazar e os últimos a serem 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 query parameters 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.

### Não faça

* **Não compartilhe um token entre colegas ou serviços.** Se dois sistemas compartilham
  um token, você não pode revogar um sem afetar o outro.
* **Não cole tokens em chat, e-mail, capturas de tela ou rastreadores de problemas.**
  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 mobile,
  binários de desktop. Qualquer coisa enviada ao dispositivo de um usuário deve ser considerada
  pública.
* **Não confie em 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 no Replit para isso.
* **Não escolha expiração de 5 anos por padrão.** Ajuste o tempo de vida ao período de
  acesso real que o consumidor precisa.

## Solução de problemas

<Accordion title="Meu token de produção parou de funcionar de repente">
  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">
  Tokens de acesso externo são destinados a tráfego de API, não a
  sessões de navegador. Quando um app de página única carrega em um navegador, a requisição HTML
  inicial pode carregar o token via query parameter, mas requisições subsequentes por
  bundles de JavaScript, CSS e chamadas de API não o incluirão e serão
  rejeitadas. Para navegar no app de forma interativa, 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 listagem mostra
  metadados (label, ambiente, expiração, últimos caracteres), mas nunca o
  valor completo do token. Se você 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 a Apps Replit](/teams/identity-and-access-management/repl-access-management):
  gerencie quais usuários Replit podem fazer login em seus apps privados.
