Si no conoces Google Identity Services ni la autorización, comienza por leer la Descripción general.
Google ofrece una biblioteca de JavaScript que incluye funciones de autorización para ayudarte a administrar los permisos, obtener el consentimiento del usuario y simplificar el trabajo con los flujos estándar de OAuth 2.0. Tu aplicación web, que se ejecuta en el navegador del usuario, usa esta biblioteca para administrar el flujo implícito de OAuth 2.0 o para iniciar el flujo de código de autorización que finaliza en tu plataforma de backend.
Permisos de solo autenticación
Varios permisos solo se usan para la autenticación del usuario: email, profile y openid. Si tu app solo usa estos permisos, considera si un token de ID de JWT y la función Acceder con Google para el registro y acceso de usuarios satisfacen tus necesidades. En la mayoría de los casos, este es el método más sencillo disponible para la autenticación de usuarios.
Términos y conceptos clave
En estas guías, se supone que tienes conocimientos básicos de los conceptos de OAuth 2.0 y los estándares de IETF, como RFC6749. En las guías de autorización, se usan los siguientes términos:
- El token de acceso es una credencial por usuario de corta duración que emite Google y que se usa para llamar de forma segura a las APIs de Google y acceder a los datos del usuario.
- El código de autorización es un código temporal que emite Google para identificar de forma segura a los usuarios individuales que acceden a su Cuenta de Google desde un navegador. Tu plataforma de backend intercambia este código por tokens de acceso y actualización.
- El token de actualización es una credencial por usuario de larga duración emitida por Google que se almacena de forma segura en tu plataforma y se puede usar para obtener un token de acceso nuevo y válido incluso cuando el usuario no está presente.
- El permiso restringe los tokens a una cantidad definida y limitada de datos del usuario. Consulta Permisos de OAuth 2.0 para las APIs de Google para obtener más información.
- El modo emergente es un flujo de código de autorización basado en una devolución de llamada de JavaScript que se ejecuta en el navegador del usuario. Google invoca tu controlador de devolución de llamada, que luego es responsable de enviar el código de autorización a tu plataforma. Tú decides cómo se hace esto.
- El modo de redireccionamiento es un flujo de código de autorización basado en redireccionamientos HTTP. Primero, el usuario-agente se redirecciona a Google. Luego, una segunda redirección de Google al extremo del código de autorización de tu plataforma incluye el código.
Google, como emisor, establece la vida útil de los tokens. La duración exacta puede variar debido a diversos factores.
Flujos de OAuth 2.0
Se analizan dos flujos: el implícito y el de código de autorización. Ambos métodos devuelven un token de acceso adecuado para usar con las APIs de Google.
Se recomienda el flujo de código de autorización porque ofrece mayor seguridad para el usuario. Este flujo también devuelve un token de actualización que se puede usar para obtener tokens de acceso sin la presencia del usuario, lo que permite que tu plataforma realice acciones asíncronas, como enviar un recordatorio por SMS de una reunión próxima que se programó a último momento. En Elige un modelo de autorización, se explican las diferencias entre los dos flujos con más detalle.
La biblioteca de JavaScript de Google Identity Services sigue el estándar de OAuth 2.0 para realizar las siguientes acciones:
- Administra el flujo implícito para permitir que tu app web en el navegador obtenga rápidamente de Google un token de acceso necesario para llamar a las APIs de Google.
- iniciar el flujo del código de autorización desde el navegador del usuario
Pasos comunes
Tanto el flujo implícito como el de código de autorización comienzan de la misma manera:
- Tu app solicita acceso a uno o más permisos.
- Google muestra un cuadro de diálogo de consentimiento al usuario y, si es necesario, primero accede a su Cuenta de Google.
- El usuario aprueba individualmente cada alcance solicitado.
Luego, cada flujo finaliza con diferentes pasos.
Cuándo usar el flujo implícito
- Google usa un controlador de devolución de llamada para notificar a tu app el resultado del consentimiento y devolver un token de acceso para los permisos aprobados.
Cuándo usar el flujo de código de autorización
- Google responde con un código de autorización por usuario:
- En el modo de redireccionamiento, el código se devuelve al extremo del código de autorización de tu plataforma.
- En el modo de diálogo, el código se devuelve al controlador de devolución de llamada de tu app en el navegador, sin que los usuarios deban salir de tu sitio web.
- A partir del paso 4: Controla la respuesta del servidor de OAuth 2.0, tu plataforma de backend completa un intercambio de servidor a servidor con Google, lo que, en última instancia, genera que se devuelva a tu plataforma un token de actualización y un token de acceso por usuario.
Consentimiento del usuario
Antes de obtener un token de acceso, los usuarios individuales deben otorgar su consentimiento para que tu app acceda a los permisos solicitados. Para ello, Google muestra un cuadro de diálogo de consentimiento durante el paso 2 y registra el resultado en myaccount.google.com/permissions.
El usuario ve el nombre, el logotipo, la política de privacidad, las condiciones del servicio y los permisos solicitados de tu app, junto con la opción para aprobar o cancelar la solicitud.
En la figura 1, se muestra el cuadro de diálogo de consentimiento para un solo alcance. Cuando se solicita un solo permiso, no se necesitan casillas de verificación para aprobar o rechazar un permiso.

Figura 1: Cuadro de diálogo de consentimiento del usuario con un solo permiso.
En la figura 2, se muestra el cuadro de diálogo de consentimiento para varios permisos. Cuando se solicita más de un alcance, se necesitan casillas de verificación individuales para permitir que el usuario apruebe o rechace cada alcance.

Figura 2: Cuadro de diálogo de consentimiento del usuario con varios permisos.
Cuentas de usuario
Se requiere una Cuenta de Google para registrar el consentimiento y emitir un token de acceso. Antes de esto, los usuarios individuales deben autenticarse en Google accediendo a una Cuenta de Google.
Si bien no es un requisito, se recomienda usar Acceder con Google para registrarse y acceder a tu app web o plataforma de backend. Esto reduce la fricción del usuario, ya que minimiza la cantidad de pasos necesarios y, de manera opcional, te permite asociar tokens de acceso con cuentas individuales en tu plataforma.
Por ejemplo, usar Acceder con Google establece una sesión activa de la Cuenta de Google, lo que evita la necesidad de solicitarle al usuario que acceda a una Cuenta de Google más adelante cuando se realice una solicitud de autorización. Si eliges autenticar a los usuarios en tu app por otros medios, como nombre de usuario y contraseña, o con otros proveedores de identidad, estos deberán acceder primero a una Cuenta de Google para dar su consentimiento.
Agregar una sugerencia de acceso durante la inicialización de la autorización (por lo general, la dirección de correo electrónico de la Cuenta de Google del usuario) permite que Google omita la visualización de un selector de cuentas, lo que ahorra un paso a los usuarios. La credencial de token de ID que devuelve Acceder con Google contiene la dirección de correo electrónico del usuario.
Las apps web que se ejecutan solo en el navegador pueden depender exclusivamente de Google para la autenticación del usuario y optar por no implementar un sistema de administración de cuentas de usuario. En este caso, conocido como flujo implícito, no es necesario asociar un token de actualización con una cuenta de usuario ni administrar el almacenamiento seguro.
De forma alternativa, el flujo del código de autorización requiere un sistema de cuentas de usuario. Los tokens de actualización por usuario deben estar asociados a una cuenta individual en tu plataforma de backend y almacenarse para su uso posterior. La forma de implementar, trabajar con un sistema de cuentas de usuario y administrarlo es exclusiva de tu plataforma y no se analiza con más detalle.
Cómo ver y revocar el consentimiento
Los usuarios pueden ver o revocar el consentimiento en cualquier momento desde la configuración de su Cuenta de Google.
De manera opcional, tu app web o plataforma puede llamar a google.accounts.oauth2.revoke para revocar tokens y quitar el consentimiento del usuario, lo que resulta útil cuando un usuario borra su cuenta de tu plataforma.
Otras opciones de autorización
Como alternativa, los navegadores pueden obtener tokens de acceso con el flujo implícito llamando directamente a los extremos de OAuth 2.0 de Google, como se describe en OAuth 2.0 para aplicaciones web del cliente.
Del mismo modo, para el flujo de código de autorización, puedes implementar tus propios métodos y seguir los pasos que se describen en Uso de OAuth 2.0 para aplicaciones de servidor web.
En ambos casos, te recomendamos que uses la biblioteca de Google Identity Services para reducir el tiempo y el esfuerzo de desarrollo, y minimizar los riesgos de seguridad, como los que se describen en la Práctica recomendada actual de seguridad de OAuth 2.0.