Guide

Cos'è OAuth? «Accedi con Google» e l'accesso delegato spiegati

OAuth è uno standard aperto che permette a un utente di dare a un'app un accesso limitato al proprio account su un altro servizio, senza consegnare la password. Quando clicchi «Collega Google Calendar» e compare una schermata che chiede «Consentire a questa app di vedere i tuoi eventi?», quello è OAuth. L'app riceve un token esattamente per ciò che hai approvato, e puoi revocarlo in qualsiasi momento. Lo stesso meccanismo, con uno strato in più chiamato OpenID Connect, alimenta «Accedi con Google» e pulsanti simili.

Perché OAuth conta quando costruisci con l'AI

OAuth compare in due situazioni comuni quando costruisci un'app:

  1. Login social. Vuoi che i tuoi utenti possano «Accedere con Google» (o Apple, Microsoft, GitHub) invece di creare un'altra password. Vedi come aggiungere il login alla tua app.
  2. Collegarsi agli account degli utenti su altri servizi. La tua app deve leggere il calendario di un utente, pubblicare sul suo account social, prelevare file dal suo cloud o sincronizzare i dati della contabilità.

In entrambi i casi il tuo app builder AI può scrivere il codice, ma alcuni passaggi li puoi fare solo tu: creare un'app sviluppatore presso il provider, ottenere un client ID e un client secret, registrare gli URL di callback e, per alcuni permessi, superare la revisione del provider. Capire come funziona OAuth rende meno misteriosi quei passaggi e gli errori che producono. Per il quadro generale sul login, vedi cos'è l'autenticazione.

Un esempio quotidiano

Pensa a una tessera magnetica di un hotel. Al check-in la reception verifica chi sei, poi ti consegna una tessera che apre la tua camera e la palestra, non le altre stanze né le aree del personale, e smette di funzionare al check-out. La tessera non contiene il tuo passaporto. Se la perdi, la reception la annulla e ne emette una nuova.

  • La reception è il server di autorizzazione (la pagina di accesso di Google).
  • Il controllo della tua identità è il login su Google.
  • La tessera è l'access token.
  • «Solo camera e palestra» sono gli scope che hai approvato.
  • Il check-out è la scadenza del token, oppure la revoca dell'accesso da parte tua.

L'app che usi non vede mai la tua password di Google, ma solo la tessera.

Come funziona OAuth, passo dopo passo

Il flusso più comune per le app web è l'authorization code flow. Ecco cosa succede quando un utente collega il suo Google Calendar a un'app di pianificazione:

  1. Clic. L'utente clicca «Collega Google Calendar».
  2. Reindirizzamento al provider. L'app invia il browser a Google con il suo client ID, gli scope richiesti (lettura degli eventi del calendario) e il redirect URI a cui Google deve rimandare l'utente.
  3. Accesso e consenso. L'utente accede a Google (se non l'ha già fatto) e vede una schermata di consenso con l'elenco di ciò che l'app chiede. Clicca Consenti.
  4. Ritorno con un codice. Google riporta il browser al redirect URI dell'app con un codice di autorizzazione a breve durata e monouso.
  5. Scambio sul server. Il server dell'app invia quel codice, insieme al client secret, direttamente a Google e riceve un access token (e spesso un refresh token).
  6. Uso dell'API. Il server chiama l'API di Google Calendar con l'access token e ottiene gli eventi dell'utente.

Il callback del passaggio 4 ha più o meno questa forma:

https://yourapp.com/auth/google/callback?code=4/0Adeu5B...&state=x7Kq9

E la risposta con il token del passaggio 5 è un JSON come questo:

{
  "access_token": "ya29.a0Af...",
  "expires_in": 3599,
  "refresh_token": "1//0gL...",
  "scope": "https://www.googleapis.com/auth/calendar.readonly",
  "token_type": "Bearer"
}

Il punto importante del design: lo scambio del token avviene da server a server, quindi il client secret e i token non devono mai passare dal browser.

OAuth vs OpenID Connect vs il tuo login

A quale domanda rispondeEsempio
OAuth 2.0«Cosa può fare questa app per conto dell'utente?» (autorizzazione)Leggere il calendario di un utente
OpenID Connect (OIDC)«Chi è questo utente?» (autenticazione), costruito su OAuth«Accedi con Google» che restituisce un'email verificata
Il tuo login«È questa la password giusta per questo account?»Email e password salvate (con hash) nel tuo database

Molte app combinano questi strumenti: login con email e password, più «Accedi con Google» tramite OIDC, più connessioni OAuth separate ad altri servizi.

Termini chiave

TermineSignificato
Provider / server di autorizzazioneIl servizio su cui l'utente accede e concede l'accesso: Google, Microsoft, GitHub.
ClientLa tua app, come registrata presso il provider.
Client IDL'identificatore pubblico della tua app presso il provider.
Client secretLa password privata della tua app presso il provider. Solo lato server.
ScopeUn permesso specifico, come «leggere il calendario» o «vedere l'indirizzo email».
Schermata di consensoLa pagina dove l'utente vede e approva gli scope richiesti.
Redirect URI / URL di callbackDove il provider rimanda l'utente. Deve essere registrato in anticipo e corrispondere esattamente.
Access tokenCredenziale a breve durata per chiamare l'API.
Refresh tokenCredenziale a durata più lunga per ottenere nuovi access token. Va conservata come una password.
ID tokenIn OIDC, un token firmato che descrive chi è l'utente.
PKCEUn controllo in più («proof key») che impedisce di usare codici intercettati. Consigliato per tutti i client.
stateUn valore casuale che protegge il flusso dalle richieste falsificate.

Errori comuni e idee sbagliate

  • «OAuth è un sistema di login». OAuth semplice concede l'accesso; OpenID Connect gestisce l'identità. Usare un access token nudo come prova di chi è una persona ha causato veri bug di sicurezza.
  • «L'app ottiene la mia password». Non succede mai. È proprio questo lo scopo.
  • «Chiedere più scope è innocuo». Gli utenti diffidano delle richieste ampie, e provider come Google possono richiedere una revisione dell'app per gli scope sensibili o ristretti. Chiedi solo ciò che ti serve.
  • «Il client secret può stare nel frontend». Tutto ciò che è nel codice del browser è pubblico. Tienilo tra i segreti lato server.
  • «Funziona nei test, quindi funzionerà in produzione». I provider spesso limitano le app non verificate, per esempio a utenti di test elencati, e il redirect URI del tuo dominio live va registrato separatamente.
  • «I token durano per sempre». Gli access token scadono in fretta e gli utenti possono revocare l'accesso. La tua app deve gestire entrambe le cose con garbo.

Cosa chiedere al tuo app builder AI

  • «Aggiungi «Accedi con Google» usando OpenID Connect con una libreria di autenticazione ben mantenuta: non scrivere a mano il flusso OAuth.»
  • «Usa il flusso authorization code con PKCE e verifica il parametro state.»
  • «Leggi il client ID e il client secret dalle variabili d'ambiente sul server.»
  • «Richiedi solo gli scope che ci servono: accesso in sola lettura al calendario.»
  • «Dimmi ogni URL di reindirizzamento da registrare nella console del provider, per l'anteprima, per l'URL pubblicato e per il mio dominio personalizzato.»
  • «Salva i refresh token cifrati nel database e gestisci i token scaduti o revocati chiedendo all'utente di ricollegarsi.»
  • «Permetti agli utenti di scollegare l'integrazione dalla pagina delle impostazioni.»

OAuth e Mythex

Mythex non ha un login utente integrato per le app che costruisci; la sua documentazione descrive un approccio «porta il tuo»: scegli una libreria di autenticazione o un provider ospitato, salvi le sue chiavi come segreti del progetto, e l'agente scrive il codice. La ricetta per aggiungere l'autenticazione contiene un prompt di partenza per questo. Incontrerai OAuth anche dentro Mythex stesso: puoi registrarti con Google, collegare GitHub per la sincronizzazione del repo usa OAuth di GitHub, e i client AI che si collegano a Mythex tramite MCP passano da una pagina di consenso OAuth. Per saperne di più, vedi cos'è l'autenticazione e cos'è l'autenticazione a due fattori.

Domande

Cos'è OAuth in parole semplici?

OAuth è un modo standard con cui un utente permette a un'app di accedere al proprio account su un altro servizio (per esempio consentire a un'app di pianificazione di leggere il suo Google Calendar) senza dare all'app la password. L'utente approva permessi specifici e l'app riceve un token che può usare solo per quelli.

OAuth è la stessa cosa di «Accedi con Google»?

«Accedi con Google» si basa su OAuth 2.0 più OpenID Connect, uno strato sopra OAuth che aggiunge un modo standard per dire all'app chi è l'utente. OAuth da solo riguarda la concessione dell'accesso; OpenID Connect è ciò che lo trasforma in un login.

Cos'è un access token OAuth?

Un access token è una credenziale che l'app invia all'API di un servizio per dimostrare di aver ricevuto l'accesso. Di solito ha una breve durata ed è limitata ai permessi (scope) approvati dall'utente. Un refresh token, se viene emesso, permette all'app di ottenere nuovi access token senza chiedere di nuovo all'utente.

Cosa significa redirect_uri_mismatch?

Significa che l'URL di callback inviato dalla tua app durante il login non corrisponde esattamente a uno registrato nella console sviluppatori del provider. Aggiungi l'URL esatto, con https, dominio, percorso e un eventuale slash finale, per ogni indirizzo su cui gira la tua app.

OAuth è sicuro?

OAuth 2.0 è molto diffuso e sicuro se implementato correttamente: usando il flusso authorization code con PKCE, URL di reindirizzamento esatti, il parametro state, e tenendo il client secret e i token sul server. La maggior parte dei problemi nasce da scorciatoie nell'implementazione, per questo si consiglia una libreria ben mantenuta.

Mythex · Pricing · Crea qualsiasi cosa con l'AI · Template per siti web e app · Mythex a confronto · Glossario per creare app con l'AI · Strumenti gratuiti per creare app con l'AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)