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

# Conectando um serviço com login próprio

> Permita que cada pessoa conecte a própria conta em um serviço que usa OAuth2, mas não é um conector da Base44, com funções de backend que o chat de IA cria para o seu app.

Alguns serviços, como provedores de dados de energia, bancos ou dados do setor, só compartilham dados depois que o titular da conta entra na página do próprio serviço e aprova o acesso. Isso se chama OAuth2. Quando o serviço não está no [catálogo de conectores](https://docs.base44.com/pt-BR/Integrations/connectors-catalog), você ainda pode conectá-lo. Para isso, peça ao chat de IA para criar o fluxo de login com funções de backend.

> [!WARNING]
>
> Você precisa de um [plano Builder](https://base44.com/pricing) ou superior para usar funções de backend.

***

## Escolhendo a opção certa

A Base44 tem várias formas de acessar outro serviço. Criar seu próprio fluxo de login dá mais trabalho. Por isso, primeiro confira se uma das opções mais simples atende ao seu serviço.

**Escolha a opção que combina com o seu serviço:**

* **O serviço está no catálogo de conectores:** Use um [conector](https://docs.base44.com/pt-BR/Integrations/Connectors.md). A Base44 cuida do login, armazena os tokens e os mantém atualizados para você. Um [conector de usuário do app](https://docs.base44.com/pt-BR/Integrations/Connectors.md#connector-types) permite que cada pessoa conecte a própria conta. Se um conector do catálogo pedir [seu próprio cliente OAuth](https://docs.base44.com/pt-BR/Integrations/Connectors.md#using-your-own-oauth-client), ele continua sendo um conector, então você não precisa desta página.
* **O serviço fornece uma chave de API:** Salve a chave como um [segredo](https://docs.base44.com/pt-BR/Integrations/Using-integrations.md#adding-secrets) e peça ao chat de IA para chamar o serviço a partir de uma função de backend. Para compartilhar uma API em todo o seu workspace, use uma [integração OpenAPI personalizada](https://docs.base44.com/pt-BR/documentation/integrations/using-custom-integrations.md).
* **O serviço exige login OAuth2 e não é um conector:** Crie o fluxo com funções de backend, como esta página descreve.

> [!NOTE]
>
> Integrações OpenAPI personalizadas e conexões MCP não conseguem conectar a conta de cada pessoa. Uma integração OpenAPI personalizada envia os mesmos dados de login em todas as chamadas, seja quem for que estiver usando seu app. As conexões MCP que você adiciona servem apenas para o chat de IA enquanto você cria, não para o seu app publicado.

***

## Como funciona

A Base44 não armazena nem atualiza tokens de serviços fora do catálogo. Por isso, seu app faz esse trabalho nas próprias funções de backend. O chat de IA as escreve para você.

**Um fluxo de login personalizado tem 4 partes:**

* **Botão de conexão:** Uma função de backend envia a pessoa para a página de login do serviço, com um código de uso único que vincula a solicitação a ela.
* **Função de callback:** Depois que a pessoa aprova o acesso, o serviço a envia de volta para uma função de backend do seu app. Essa função confere o código de uso único e troca a resposta do serviço pelos tokens dessa pessoa.
* **Tabela de tokens:** Os tokens ficam salvos em uma tabela de dados, com um registro por pessoa. Apenas suas funções de backend leem essa tabela, nunca as páginas do seu app.
* **Funções de API:** Funções de backend chamam o serviço com o token dessa pessoa. Quando o token expira, elas usam o refresh token para obter um novo.

Seu app precisa que as pessoas façam login para saber a quem pertence cada conexão. Saiba mais em [Gerenciando login e cadastro](https://docs.base44.com/pt-BR/Setting-up-your-app/Managing-login-and-registration.md).

***

## Registrando seu app OAuth

Antes que seu app possa fazer o login de alguém, você o registra no serviço. O serviço fornece um client ID e um client secret e pergunta para onde enviar as pessoas depois do login. Esse endereço é a URL pública da sua função de callback.

Cada função de backend tem a própria URL pública, neste formato:

```text theme={null}
https://your-app-name.base44.app/functions/yourFunctionName
```

Use o endereço em que as pessoas abrem seu app. Se você conectou um domínio personalizado, use esse domínio, por exemplo `https://your-domain.com/functions/yourFunctionName`. Se o serviço aceitar mais de uma redirect URI, adicione os dois endereços. Escolha agora o nome da função de callback, como `enedisCallback`, para passar o mesmo nome ao chat de IA depois.

**Para registrar seu app no serviço:**

1. Entre no portal de desenvolvedores do serviço e crie um app OAuth. Alguns serviços o chamam de cliente ou aplicação.
2. Insira a URL da sua função de callback como redirect URI, por exemplo `https://your-app-name.base44.app/functions/enedisCallback`.
3. Escolha apenas os escopos de que seu app precisa.
4. Copie o client ID e o client secret.
5. Copie a URL de autorização e a URL de token do serviço na documentação para desenvolvedores dele.

***

## Criando o fluxo de login

O chat de IA escreve as funções, a tabela de tokens e os botões em que as pessoas clicam. Passe a ele os detalhes da documentação para desenvolvedores do serviço, porque ele não consegue consultar sozinho as configurações de login de um serviço privado.

> [!WARNING]
>
> Nunca digite seu client secret em uma mensagem do chat. Quando o chat de IA pedir esse valor, insira-o no formulário que o chat de IA mostra, ou [adicione-o como um segredo](https://docs.base44.com/pt-BR/Integrations/Using-integrations.md#adding-secrets) você mesmo. A Base44 só detecta e oculta chaves de serviços conhecidos, então um segredo de outro serviço fica visível na sua mensagem.

**Para criar o fluxo de login:**

1. Acesse o editor do app.

2. Peça ao chat de IA para criar o fluxo, com as URLs do serviço, seus escopos e o nome da função de callback que você registrou. Por exemplo:

   ```text theme={null}
   Permita que cada usuário conectado vincule a própria conta da Enedis com OAuth2, para que o app mostre o consumo de eletricidade dele. A Enedis não é um conector da Base44, então crie o fluxo com funções de backend.

   - URL de autorização: [cole da documentação da Enedis]
   - URL de token: [cole da documentação da Enedis]
   - Escopos: [os escopos que você escolheu]
   - Redirect URI: [sua callback URL]. Use exatamente esta URL tanto na solicitação de autorização quanto na troca de token.
   - Leia o client ID e o client secret dos segredos ENEDIS_CLIENT_ID e ENEDIS_CLIENT_SECRET.

   Adicione um botão Conectar Enedis que envie o usuário para a URL de autorização com um valor de state de uso único vinculado a ele. Crie uma função de backend chamada enedisCallback como redirect URI. Ela deve conferir o state, trocar o código por tokens, salvá-los para esse usuário e enviá-lo de volta ao app. Armazene os tokens em uma tabela com permissões apenas de admin para criar, ler, atualizar e excluir, e leia e grave nela somente a partir de funções de backend com o service role. Atualize o token de acesso quando ele expirar, mostre um botão Reconectar se a atualização falhar e adicione um botão Desconectar que exclua os tokens do usuário.
   ```

3. Quando o chat de IA pedir seu client ID e seu client secret, insira-os no formulário que ele mostra.

4. Confira se a função de callback tem exatamente o nome que você registrou. Se não tiver, peça ao chat de IA para renomeá-la.

5. Clique em **Painel**.

6. Clique em **Dados** e selecione a tabela de tokens.

7. Clique em **Permissões** no topo da tabela e confira se apenas admins podem criar, ler, atualizar ou excluir registros. Saiba mais em [Alterando as permissões de dados](https://docs.base44.com/pt-BR/Building-your-app/Managing-your-app-data.md#changing-data-permissions).

8. Clique em **Test permissions in preview**, aja como um usuário comum e confira se ele não consegue ver nenhum registro na tabela de tokens.

***

## Publicando e testando

O serviço sempre envia as pessoas de volta para o seu app publicado. Por isso, o callback executa a versão da função que você publicou por último, com os segredos que ela tinha naquele momento. Publique seu app antes de testar e publique de novo sempre que alterar uma função ou um segredo.

**Para testar a conexão:**

1. Acesse o editor do app.
2. Publique seu app.
3. Abra seu app publicado e faça login.
4. Clique no botão de conexão que o chat de IA adicionou.
5. Entre no serviço com uma conta que você tem permissão para usar e aprove o acesso.

***

## Como as pessoas se conectam

Cada pessoa que faz login no seu app conecta a própria conta. Ela clica no botão de conexão, entra na página do próprio serviço e aprova o acesso. Seu app nunca vê a senha dela nesse serviço. Os tokens dela ficam salvos na tabela de tokens do seu app, que só suas funções de backend usam. Você e os outros editores do seu app ainda conseguem ver essa tabela no painel, então trate-a como qualquer outro dado privado.

Peça às pessoas que conectem apenas contas que são delas ou que elas têm permissão para usar, e solicite apenas o acesso de que seu app precisa. Informe no seu app quais dados você lê e o que faz com eles. Alguns serviços, principalmente os que compartilham dados pessoais ou domésticos, têm regras próprias sobre consentimento. Confira os termos do serviço antes de publicar.

***

## Solução de problemas

Se o fluxo de login não funcionar, encontre sua situação abaixo.

> [accordion] O serviço diz que a redirect URI não corresponde
>
> A callback URL que você registrou no serviço precisa corresponder exatamente à URL da sua função. Confira se ela usa o mesmo domínio em que seu app roda e se o nome da função corresponde à pasta dela em **Código**, em `base44/functions`, incluindo letras maiúsculas.

> [accordion] Volto para o meu app, mas minha conta não está conectada
>
> Publique seu app e tente de novo a partir do app publicado. Se ainda falhar, abra o arquivo da função de callback em **Código**, clique em **Logs** e cole o erro no chat de IA para que ele corrija a função.

> [accordion] As pessoas precisam se reconectar com muita frequência
>
> Provavelmente o token de acesso expira e não está sendo atualizado. Peça ao chat de IA para atualizá-lo com o refresh token. Alguns serviços só enviam um refresh token quando você solicita um escopo ou uma configuração específica, então confira a documentação do serviço.

> [!NOTE]
>
> Esta página foi traduzida usando IA. Para as informações mais precisas e atualizadas, consulte a [versão em inglês](https://docs.base44.com/index.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.