Los errores pueden ocurrir en diferentes capas. Es posible que recibas notificaciones de diferentes maneras, según dónde ocurra el error.
Faltan parámetros de OAuth obligatorios
Si te olvidas de configurar los parámetros de OAuth obligatorios, como el client_id o el alcance, verás un mensaje de error como el que se muestra a continuación en la Consola de JavaScript de tu navegador.
Corregir errores de configuración de OAuth
Es posible que se deban realizar cambios en la Consola de APIs de Google para resolver algunos errores.
- Crea un ID de cliente si aún no lo ha hecho.
- Para la UX emergente, agrega a
Authorized JavaScript origins
todos los dominios que puedan activar el flujo actual. - Para la UX de redireccionamiento, agrega a
Authorized redirect URIs
todas las URLs que puedan recibir respuestas de autorización. - Configurar correctamente la pantalla de consentimiento de OAuth
- Si es necesario, envía la app para verificarla.
- Es posible que debas realizar pasos adicionales para satisfacer las políticas de OAuth 2.0 de Google.
Valores de parámetros de OAuth no válidos
Si configuras los valores no válidos en los parámetros de OAuth, como el ID de cliente, los identificadores de alcance o los valores de tipo de respuesta no válidos, verás la página de error de OAuth.
Respuestas de error de OAuth
OAuth puede mostrar una respuesta de error, en cuyo caso la función callback
se activará con la respuesta de error como parámetro. El siguiente es un ejemplo de respuesta de error de OAuth.
{ "error":"access_denied" }
A continuación, se incluyen algunos ejemplos.
- El usuario rechaza la solicitud de OAuth.
- En el caso de una solicitud de OAuth con el parámetro
prompt=none
, el usuario aún no está autenticado y no tiene consentimiento preconfigurado para los permisos solicitados.
En el siguiente ejemplo, se muestra cómo controlar las respuestas de OAuth de éxito y error.
function myCallback(response) {
if (response.error) {
// Handle error response
... ...
} else if (response.code) {
// Handle success code response
... ...
}
}
Errores que no son de OAuth
OAuth no define los comportamientos en los siguientes casos:
- no se abre la ventana emergente.
- La ventana emergente se cierra antes de que se muestre una respuesta de OAuth.
Esta biblioteca captura estos errores y activa error_callback
si se configura. Asegúrate de verificar el tipo de error como se muestra a continuación. De lo contrario, tu lógica de código podría verse afectada cuando esta biblioteca admita nuevos tipos de errores más adelante.
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
});