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

# Collegare un servizio con il proprio accesso

> Permetti a ogni persona di collegare il proprio account su un servizio che usa OAuth2 ma non è un connettore Base44, con funzioni backend che la chat AI crea per la tua app.

Alcuni servizi, come i fornitori di dati energetici, bancari o di settore, condividono i dati solo dopo che il titolare dell'account accede alla pagina del servizio e approva l'accesso. Questo processo si chiama OAuth2. Se il servizio non è nel [catalogo dei connettori](https://docs.base44.com/it/Integrations/connectors-catalog), puoi comunque collegarlo. Chiedi alla chat AI di creare il flusso di accesso con funzioni backend.

> [!WARNING]
>
> Ti serve un [piano Builder](https://base44.com/pricing) o superiore per usare le funzioni backend.

***

## Scegliere l'opzione giusta

Base44 offre diversi modi per raggiungere un altro servizio. Creare un tuo flusso di accesso richiede più lavoro, quindi controlla prima se un'opzione più semplice copre il tuo servizio.

**Scegli l'opzione adatta al tuo servizio:**

* **Il servizio è nel catalogo dei connettori:** usa un [connettore](https://docs.base44.com/it/Integrations/Connectors.md). Base44 gestisce l'accesso, memorizza i token e li mantiene aggiornati per te. Un [connettore per utenti dell'app](https://docs.base44.com/it/Integrations/Connectors.md#connector-types) permette a ogni persona di collegare il proprio account. Se un connettore del catalogo chiede il [tuo client OAuth](https://docs.base44.com/it/Integrations/Connectors.md#using-your-own-oauth-client), è comunque un connettore, quindi non ti serve questa pagina.
* **Il servizio ti fornisce una chiave API:** salva la chiave come [secret](https://docs.base44.com/it/Integrations/Using-integrations.md#adding-secrets) e chiedi alla chat AI di chiamare il servizio da una funzione backend. Per condividere un'API in tutto il workspace, usa un'[integrazione OpenAPI personalizzata](https://docs.base44.com/it/documentation/integrations/using-custom-integrations.md).
* **Il servizio richiede l'accesso OAuth2 e non è un connettore:** crea il flusso con funzioni backend, come descritto in questa pagina.

> [!NOTE]
>
> Le integrazioni OpenAPI personalizzate e le connessioni MCP non possono collegare l'account personale di ogni persona. Un'integrazione OpenAPI personalizzata invia gli stessi dati di accesso a ogni chiamata, chiunque stia usando la tua app. Le connessioni MCP che aggiungi servono solo alla chat AI mentre costruisci, non alla tua app pubblicata.

***

## Come funziona

Base44 non memorizza né aggiorna i token per i servizi fuori dal catalogo. Se ne occupa la tua app, nelle sue funzioni backend. La chat AI le scrive per te.

**Un flusso di accesso personalizzato ha 4 parti:**

* **Pulsante di collegamento:** una funzione backend porta la persona alla pagina di accesso del servizio, con un codice monouso che lega la richiesta a lei.
* **Funzione di callback:** dopo che la persona approva l'accesso, il servizio la rimanda a una funzione backend della tua app. La funzione controlla il codice monouso e scambia la risposta del servizio con i token di quella persona.
* **Tabella dei token:** i token vengono salvati in una tabella di dati, con un record per persona. Solo le tue funzioni backend la leggono, mai le pagine della tua app.
* **Funzioni API:** le funzioni backend chiamano il servizio con il token di quella persona. Quando il token scade, usano il refresh token per ottenerne uno nuovo.

La tua app deve richiedere l'accesso alle persone, così sa a chi appartiene ogni connessione. Scopri di più in [Gestire login e registrazione](https://docs.base44.com/it/Setting-up-your-app/Managing-login-and-registration.md).

***

## Registrare la tua app OAuth

Prima che la tua app possa far accedere qualcuno, devi registrarla presso il servizio. Il servizio ti fornisce un client ID e un client secret. Ti chiede anche dove rimandare le persone dopo l'accesso. Quell'indirizzo è l'URL pubblico della tua funzione di callback.

Ogni funzione backend ha un proprio URL pubblico, in questo formato:

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

Usa l'indirizzo su cui le persone aprono la tua app. Se hai collegato un dominio personalizzato, usa quel dominio, per esempio `https://your-domain.com/functions/yourFunctionName`. Se il servizio accetta più di un redirect URI, aggiungi entrambi gli indirizzi. Scegli ora il nome della funzione di callback, come `enedisCallback`, così potrai dare lo stesso nome alla chat AI in seguito.

**Per registrare la tua app presso il servizio:**

1. Accedi al portale per sviluppatori del servizio e crea un'app OAuth. Alcuni servizi la chiamano client o applicazione.
2. Inserisci l'URL della tua funzione di callback come redirect URI, per esempio `https://your-app-name.base44.app/functions/enedisCallback`.
3. Scegli solo gli scope di cui la tua app ha bisogno.
4. Copia il client ID e il client secret.
5. Copia l'URL di autorizzazione e l'URL dei token del servizio dalla sua documentazione per sviluppatori.

***

## Creare il flusso di accesso

La chat AI scrive le funzioni, la tabella dei token e i pulsanti su cui cliccano le persone. Forniscile i dettagli presi dalla documentazione per sviluppatori del servizio, perché non può cercare da sola le impostazioni di accesso di un servizio privato.

> [!WARNING]
>
> Non scrivere mai il client secret in un messaggio di chat. Quando la chat AI lo chiede, inseriscilo nel modulo che mostra, oppure [aggiungilo come secret](https://docs.base44.com/it/Integrations/Using-integrations.md#adding-secrets) tu stesso. Base44 rileva e nasconde solo le chiavi di servizi noti, quindi un secret di un altro servizio resta nel tuo messaggio.

**Per creare il flusso di accesso:**

1. Vai all'editor della tua app.

2. Chiedi alla chat AI di creare il flusso, con gli URL del servizio, i tuoi scope e il nome della funzione di callback che hai registrato. Per esempio:

   ```text theme={null}
   Permetti a ogni utente che ha effettuato l'accesso di collegare il proprio account Enedis con OAuth2, così l'app può mostrare il suo consumo di elettricità. Enedis non è un connettore Base44, quindi crea il flusso con funzioni backend.

   - URL di autorizzazione: [incolla dalla documentazione di Enedis]
   - URL dei token: [incolla dalla documentazione di Enedis]
   - Scope: [gli scope che hai scelto]
   - Redirect URI: [il tuo URL di callback]. Usa esattamente questo URL sia nella richiesta di autorizzazione sia nello scambio dei token.
   - Leggi il client ID e il client secret dai secret ENEDIS_CLIENT_ID ed ENEDIS_CLIENT_SECRET.

   Aggiungi un pulsante Collega Enedis che porta l'utente all'URL di autorizzazione con un valore state monouso legato a lui. Crea una funzione backend chiamata enedisCallback come redirect URI. Deve controllare lo state, scambiare il codice con i token, salvarli per quell'utente e riportarlo all'app. Memorizza i token in una tabella con permessi di creazione, lettura, modifica ed eliminazione riservati agli admin, e leggila e scrivila solo dalle funzioni backend con il service role. Aggiorna il token di accesso quando scade, mostra un pulsante Ricollega se l'aggiornamento non riesce e aggiungi un pulsante Scollega che elimina i token dell'utente.
   ```

3. Quando la chat AI chiede il client ID e il client secret, inseriscili nel modulo che mostra.

4. Controlla che la funzione di callback abbia esattamente il nome che hai registrato. Se non è così, chiedi alla chat AI di rinominarla.

5. Clicca **Dashboard**.

6. Clicca **Data**, poi seleziona la tabella dei token.

7. Clicca **Permissions** in cima alla tabella e controlla che solo gli admin possano creare, leggere, modificare o eliminare i record. Scopri di più in [Modificare i permessi dei dati](https://docs.base44.com/it/Building-your-app/Managing-your-app-data.md#changing-data-permissions).

8. Clicca **Test permissions in preview**, poi agisci come un utente normale e controlla che non possa vedere alcun record nella tabella dei token.

***

## Pubblicare e testare

Il servizio rimanda sempre le persone alla tua app pubblicata. Per questo la funzione di callback esegue l'ultima versione pubblicata della funzione, con i secret che aveva in quel momento. Pubblica la tua app prima di testare e pubblica di nuovo ogni volta che modifichi una funzione o un secret.

**Per testare la connessione:**

1. Vai all'editor della tua app.
2. Pubblica la tua app.
3. Apri la tua app pubblicata ed effettua l'accesso.
4. Clicca il pulsante di collegamento aggiunto dalla chat AI.
5. Accedi al servizio con un account che sei autorizzato a usare e approva l'accesso.

***

## Come si collegano le persone

Ogni persona che accede alla tua app collega il proprio account. Clicca il pulsante di collegamento, accede alla pagina del servizio e approva l'accesso. La tua app non vede mai la sua password del servizio. I suoi token vengono salvati nella tabella dei token della tua app, che usano solo le tue funzioni backend. Tu e gli altri editor della tua app potete comunque vedere quella tabella nella dashboard, quindi trattala come qualsiasi altro dato privato.

Chiedi alle persone di collegare solo account che possiedono o che sono autorizzate a usare, e richiedi solo l'accesso che serve alla tua app. Spiega nella tua app quali dati leggi e cosa ne fai. Alcuni servizi, soprattutto quelli che condividono dati personali o domestici, hanno regole proprie sul consenso. Controlla i termini del servizio prima di pubblicare.

***

## Risoluzione dei problemi

Se il flusso di accesso non funziona, trova la tua situazione qui sotto.

> [accordion] Il servizio dice che il redirect URI non corrisponde
>
> L'URL di callback registrato presso il servizio deve corrispondere esattamente all'URL della tua funzione. Controlla che usi lo stesso dominio su cui gira la tua app. Controlla anche che il nome della funzione corrisponda alla sua cartella in **Code**, sotto `base44/functions`, maiuscole comprese.

> [accordion] Torno alla mia app ma il mio account non è collegato
>
> Pubblica la tua app, poi riprova dalla tua app pubblicata. Se continua a non funzionare, apri il file della funzione di callback in **Code**, clicca **Logs** e incolla l'errore nella chat AI, così può correggere la funzione.

> [accordion] Le persone devono ricollegarsi troppo spesso
>
> Probabilmente il token di accesso scade e non viene aggiornato. Chiedi alla chat AI di aggiornarlo con il refresh token. Alcuni servizi inviano un refresh token solo quando richiedi uno scope o un'impostazione specifici, quindi controlla la documentazione del servizio.

> [!NOTE]
>
> Questa pagina è stata tradotta con l'AI. Per le informazioni più accurate e aggiornate, consulta la [versione inglese](https://docs.base44.com/index.md).


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