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

# Conectar un servicio con su propio inicio de sesión

> Permite que cada persona conecte su propia cuenta en un servicio que usa OAuth2 pero no es un conector de Base44, con funciones de backend que el chat de IA crea para tu app.

Algunos servicios, como los proveedores de datos de energía, banca o industria, solo comparten datos después de que el titular de la cuenta inicia sesión en la página del propio servicio y aprueba el acceso. Esto se llama OAuth2. Si el servicio no está en el [catálogo de conectores](https://docs.base44.com/es/Integrations/connectors-catalog), puedes conectarlo igualmente. Pide al chat de IA que cree el flujo de inicio de sesión con funciones de backend.

> [!WARNING]
>
> Necesitas un [plan Builder](https://base44.com/pricing) o superior para usar funciones de backend.

***

## Elegir la opción adecuada

Base44 tiene varias formas de llegar a otro servicio. Crear tu propio flujo de inicio de sesión es lo que más trabajo requiere. Por eso, comprueba primero si una de las opciones más sencillas sirve para tu servicio.

**Elige la opción que corresponda a tu servicio:**

* **El servicio está en el catálogo de conectores:** Usa un [conector](https://docs.base44.com/es/Integrations/Connectors.md). Base44 gestiona el inicio de sesión, guarda los tokens y los mantiene actualizados por ti. Un [conector para usuarios de la app](https://docs.base44.com/es/Integrations/Connectors.md#connector-types) permite que cada persona conecte su propia cuenta. Si un conector del catálogo te pide [tu propio cliente OAuth](https://docs.base44.com/es/Integrations/Connectors.md#using-your-own-oauth-client), sigue siendo un conector, así que no necesitas esta página.
* **El servicio te da una clave de API:** Guarda la clave como [secreto](https://docs.base44.com/es/Integrations/Using-integrations.md#adding-secrets) y pide al chat de IA que llame al servicio desde una función de backend. Para compartir una API en todo tu espacio de trabajo, usa una [integración OpenAPI personalizada](https://docs.base44.com/es/documentation/integrations/using-custom-integrations.md).
* **El servicio necesita inicio de sesión OAuth2 y no es un conector:** Crea el flujo con funciones de backend, como explica esta página.

> [!NOTE]
>
> Las integraciones OpenAPI personalizadas y las conexiones MCP no pueden conectar la cuenta propia de cada persona. Una integración OpenAPI personalizada envía los mismos datos de inicio de sesión en cada llamada, sea quien sea quien use tu app. Las conexiones MCP que añades son solo para el chat de IA mientras creas tu app, no para tu app publicada.

***

## Cómo funciona

Base44 no guarda ni actualiza tokens de servicios que no están en el catálogo. Por eso, tu app hace ese trabajo en sus propias funciones de backend. El chat de IA las escribe por ti.

**Un flujo de inicio de sesión personalizado tiene 4 partes:**

* **Botón de conexión:** Una función de backend envía a la persona a la página de inicio de sesión del servicio, con un código de un solo uso que vincula la solicitud a ella.
* **Función de callback:** Después de aprobar el acceso, el servicio devuelve a la persona a una función de backend de tu app. Esta función comprueba el código de un solo uso y cambia la respuesta del servicio por los tokens de esa persona.
* **Tabla de tokens:** Los tokens se guardan en una tabla de datos, con un registro por persona. Solo la leen tus funciones de backend, nunca las páginas de tu app.
* **Funciones de API:** Las funciones de backend llaman al servicio con el token de esa persona. Usan el token de actualización para obtener uno nuevo cuando caduca.

Tu app necesita que las personas inicien sesión para saber a quién pertenece cada conexión. Más información en [Gestionar el inicio de sesión y el registro](https://docs.base44.com/es/Setting-up-your-app/Managing-login-and-registration.md).

***

## Registrar tu app OAuth

Antes de que tu app pueda iniciar sesión a alguien, la registras en el servicio. El servicio te da un ID de cliente y un secreto de cliente. También te pregunta a dónde devolver a las personas después de iniciar sesión. Esa dirección es la URL pública de tu función de callback.

Cada función de backend tiene su propia URL pública, con este formato:

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

Usa la dirección en la que las personas abren tu app. Si conectaste un dominio personalizado, usa ese dominio, por ejemplo `https://your-domain.com/functions/yourFunctionName`. Si el servicio acepta más de un URI de redirección, añade ambas direcciones. Elige ahora el nombre de la función de callback, como `enedisCallback`, para dar el mismo nombre al chat de IA más tarde.

**Para registrar tu app en el servicio:**

1. Inicia sesión en el portal para desarrolladores del servicio y crea una app OAuth. Algunos servicios la llaman cliente o aplicación.
2. Introduce la URL de tu función de callback como URI de redirección, por ejemplo `https://your-app-name.base44.app/functions/enedisCallback`.
3. Elige solo los alcances que necesita tu app.
4. Copia el ID de cliente y el secreto de cliente.
5. Copia la URL de autorización y la URL de token del servicio desde su documentación para desarrolladores.

***

## Crear el flujo de inicio de sesión

El chat de IA escribe las funciones, la tabla de tokens y los botones en los que hacen clic las personas. Dale los datos de la documentación para desarrolladores del servicio, porque no puede buscar por su cuenta la configuración de inicio de sesión de un servicio privado.

> [!WARNING]
>
> Nunca escribas tu secreto de cliente en un mensaje del chat. Cuando el chat de IA te lo pida, introdúcelo en el formulario que muestra, o [añádelo como secreto](https://docs.base44.com/es/Integrations/Using-integrations.md#adding-secrets) tú mismo. Base44 solo detecta y oculta claves de servicios conocidos, así que un secreto de otro servicio se queda en tu mensaje.

**Para crear el flujo de inicio de sesión:**

1. Ve al editor de tu app.

2. Pide al chat de IA que cree el flujo, con las URL del servicio, tus alcances y el nombre de la función de callback que registraste. Por ejemplo:

   ```text theme={null}
   Permite que cada usuario con sesión iniciada conecte su propia cuenta de Enedis con OAuth2, para que la app muestre su consumo de electricidad. Enedis no es un conector de Base44, así que crea el flujo con funciones de backend.

   - URL de autorización: [pegar de la documentación de Enedis]
   - URL de token: [pegar de la documentación de Enedis]
   - Alcances: [los alcances que elegiste]
   - URI de redirección: [tu URL de callback]. Usa exactamente esta URL tanto en la solicitud de autorización como en el intercambio de tokens.
   - Lee el ID de cliente y el secreto de cliente de los secretos ENEDIS_CLIENT_ID y ENEDIS_CLIENT_SECRET.

   Añade un botón Conectar Enedis que envíe al usuario a la URL de autorización con un valor de estado de un solo uso vinculado a él. Crea una función de backend llamada enedisCallback como URI de redirección. Debe comprobar el estado, cambiar el código por tokens, guardarlos para ese usuario y devolverlo a la app. Guarda los tokens en una tabla con permisos solo para admins para crear, leer, actualizar y eliminar, y léela y escríbela solo desde funciones de backend con el rol de servicio. Actualiza el token de acceso cuando caduque, muestra un botón Volver a conectar si la actualización falla y añade un botón Desconectar que elimine los tokens del usuario.
   ```

3. Cuando el chat de IA te pida el ID de cliente y el secreto de cliente, introdúcelos en el formulario que muestra.

4. Comprueba que la función de callback tenga exactamente el nombre que registraste. Si no lo tiene, pide al chat de IA que le cambie el nombre.

5. Haz clic en **Panel**.

6. Haz clic en **Datos** y selecciona la tabla de tokens.

7. Haz clic en **Permisos** en la parte superior de la tabla y comprueba que solo los admins pueden crear, leer, actualizar o eliminar registros. Más información en [Cambiar los permisos de datos](https://docs.base44.com/es/Building-your-app/Managing-your-app-data.md#changing-data-permissions).

8. Haz clic en **Test permissions in preview**, actúa como un usuario normal y comprueba que no puede ver ningún registro en la tabla de tokens.

***

## Publicar y probar

El servicio siempre devuelve a las personas a tu app publicada. Por eso, el callback ejecuta la versión de la función que publicaste por última vez, con los secretos que tenía entonces. Publica tu app antes de probar, y vuelve a publicarla cada vez que cambies una función o un secreto.

**Para probar la conexión:**

1. Ve al editor de tu app.
2. Publica tu app.
3. Abre tu app publicada e inicia sesión.
4. Haz clic en el botón de conexión que añadió el chat de IA.
5. Inicia sesión en el servicio con una cuenta que tengas permiso para usar y aprueba el acceso.

***

## Cómo se conectan las personas

Cada persona que inicia sesión en tu app conecta su propia cuenta. Hace clic en el botón de conexión, inicia sesión en la página del propio servicio y aprueba el acceso. Tu app nunca ve su contraseña del servicio. Sus tokens se guardan en la tabla de tokens de tu app, que solo usan tus funciones de backend. Tú y los demás editores de tu app pueden ver esa tabla en el panel, así que trátala como cualquier otro dato privado.

Pide a las personas que conecten solo cuentas que sean suyas o que tengan permiso para usar. Pide solo el acceso que necesita tu app. Indica en tu app qué datos lees y qué haces con ellos. Algunos servicios, sobre todo los que comparten datos personales o del hogar, tienen sus propias normas sobre el consentimiento. Revisa las condiciones del servicio antes de publicar.

***

## Solución de problemas

Si el flujo de inicio de sesión no funciona, busca tu situación abajo.

> [accordion] El servicio dice que el URI de redirección no coincide
>
> La URL de callback que registraste en el servicio debe coincidir exactamente con la URL de tu función. Comprueba que usa el mismo dominio en el que funciona tu app. Comprueba también que el nombre de la función coincide con su carpeta en **Código**, dentro de `base44/functions`, incluidas las mayúsculas.

> [accordion] Vuelvo a mi app pero mi cuenta no está conectada
>
> Publica tu app y vuelve a intentarlo desde tu app publicada. Si sigue fallando, abre el archivo de la función de callback en **Código**, haz clic en **Logs** y pega el error en el chat de IA para que corrija la función.

> [accordion] Las personas tienen que volver a conectarse demasiado a menudo
>
> Probablemente el token de acceso caduca y no se actualiza. Pide al chat de IA que lo actualice con el token de actualización. Algunos servicios solo envían un token de actualización cuando pides un alcance o una configuración concretos, así que revisa su documentación.

> [!NOTE]
>
> Esta página fue traducida usando IA. Para obtener la información más precisa y actualizada, consulta la [versión en inglés](https://docs.base44.com/index.md).


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