Gli errori possono verificarsi in diversi livelli. Potresti ricevere notifiche in modi diversi, a seconda di dove si verifica l'errore.
Parametri OAuth obbligatori mancanti
Se dimentichi di impostare i parametri OAuth richiesti, ad esempio client_id o l'ambito, verrà visualizzato un messaggio di errore come quello riportato di seguito nella console JavaScript del browser.
Correggere gli errori di configurazione OAuth
Per risolvere alcuni errori, potrebbe essere necessario apportare modifiche nella console API di Google.
- Crea un ID client, se non ancora.
- Per l'UX popup, aggiungi tutti i domini che potrebbero attivare il flusso attuale a
Authorized JavaScript origins
. - Per l'UX di reindirizzamento, aggiungi a
Authorized redirect URIs
tutti gli URL che potrebbero ricevere risposte di autorizzazione. - Configura correttamente la schermata per il consenso OAuth.
- Se necessario, invia la tua app per la verifica.
- Potrebbe essere necessario eseguire ulteriori passaggi per rispettare i criteri OAuth 2.0 di Google.
Valori dei parametri OAuth non validi
Se imposti i valori non validi sui parametri OAuth, ad esempio ID client, identificatori di ambito o valori del tipo di risposta non validi, viene visualizzata la pagina di errore OAuth.
Risposte di errore OAuth
OAuth potrebbe restituire una risposta di errore, nel qual caso la funzione callback
verrà attivata con la risposta di errore come parametro. Di seguito è riportato un esempio di risposta di errore OAuth.
{ "error":"access_denied" }
Di seguito sono riportati alcuni esempi.
- L'utente rifiuta la richiesta OAuth.
- Per una richiesta OAuth con il parametro
prompt=none
, l'utente non è già autenticato e non ha preconfigurato il consenso per gli ambiti richiesti.
L'esempio seguente mostra come gestire le risposte OAuth con esito positivo e negativo.
function myCallback(response) {
if (response.error) {
// Handle error response
... ...
} else if (response.code) {
// Handle success code response
... ...
}
}
Errori non OAuth
OAuth non definisce i comportamenti quando:
- non si apre la finestra popup.
- la finestra popup viene chiusa prima che venga restituita una risposta OAuth.
Questa libreria acquisisce questi errori e attiva error_callback
, se
impostata. Assicurati di controllare il tipo di errore come indicato di seguito. In caso contrario, la logica del codice potrebbe essere compromessa se questa libreria supporterà nuovi tipi di errore in un secondo momento.
function myErrorCallback(err) {
if (err.type == 'popup_failed_to_open') {
// The popup window is failed to open
... ...
} else if (err.type == 'popup_closed') {
// The popup window is closed before an OAuth response is returned
... ...
}
}
const client = google.accounts.oauth2.initCodeClient({
client_id: 'YOUR_GOOGLE_CLIENT_ID',
scope: 'https://www.googleapis.com/auth/calendar.readonly',
ux_mode: 'popup',
callback: myCallback,
error_callback: myErrorCallback
});