Referencia de la API de HTML de Acceder con Google

En esta página de referencia, se describe la API de atributos de datos HTML de Acceder con Google. Puedes usar la API para mostrar el mensaje de One Tap o el botón Acceder con Google en tus páginas web.

Elemento con el ID "g_id_onload"

Puedes colocar los atributos de datos de Acceder con Google en cualquier elemento visible o invisible, como <div> y <span>. El único requisito es que el ID del elemento esté configurado en g_id_onload. No coloques este ID en varios elementos.

Atributos de datos

En la siguiente tabla, se enumeran los atributos de datos con sus descripciones:

Atributo
data-client_id El ID de cliente de tu aplicación
data-auto_prompt Mostrar el toque de Google One
data-auto_select Habilita la selección automática en Google One Tap.
data-login_uri La URL de tu extremo de acceso
data-callback Es el nombre de la función del controlador de tokens de ID de JavaScript.
data-native_login_uri La URL del extremo del controlador de credenciales de contraseña
data-native_callback Es el nombre de la función del controlador de credenciales de contraseña de JavaScript.
data-native_id_param Es el nombre del parámetro para el valor credential.id.
data-native_password_param Es el nombre del parámetro para el valor credential.password.
data-cancel_on_tap_outside Controla si se cancela la indicación si el usuario hace clic fuera de ella.
data-prompt_parent_id El ID de DOM del elemento del contenedor del mensaje de One Tap
data-skip_prompt_cookie Omite el acceso con un clic si la cookie especificada tiene un valor no vacío.
data-nonce Una cadena aleatoria para los tokens de ID
data-context El título y las palabras de la instrucción de One Tap
data-moment_callback Es el nombre de la función del objeto de escucha de notificaciones de estado de la IU del mensaje.
data-state_cookie_domain Si necesitas llamar a One Tap en el dominio superior y sus subdominios, pasa el dominio superior a este atributo para que se use una sola cookie compartida.
data-ux_mode Flujo de UX del botón de Acceder con Google
data-allowed_parent_origin Los orígenes que pueden incorporar el iframe intermedio. One Tap se ejecuta en el modo de iframe intermedio si este atributo está presente.
data-intermediate_iframe_close_callback Anula el comportamiento predeterminado del iframe intermedio cuando los usuarios cierran One Tap de forma manual.
data-itp_support Habilita la UX de One Tap actualizada en los navegadores de ITP.
data-login_hint Proporciona una sugerencia para el usuario para omitir la selección de la cuenta.
data-hd Limita la selección de cuentas por dominio.
data-use_fedcm_for_prompt Permite que el navegador controle las indicaciones de acceso de los usuarios y medie el flujo de acceso entre tu sitio web y Google.
data-enable_redirect_uri_validation Habilita el flujo de redireccionamiento de botones que cumpla con las reglas de validación de URI de redireccionamiento.

Tipos de atributos

En las siguientes secciones, se incluyen detalles sobre el tipo de cada atributo y un ejemplo.

data-client_id

Este atributo es el ID de cliente de tu app, que se encuentra y se crea en la consola de Google Cloud. Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
string data-client_id="CLIENT_ID.apps.googleusercontent.com"

data-auto_prompt

Este atributo determina si se mostrará la función de un solo toque o no. El valor predeterminado es true. No se muestra el toque de Google One cuando este valor es false. Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
booleano Opcional data-auto_prompt="true"

data-auto_select

Este atributo determina si se debe mostrar un token de ID automáticamente, sin interacción del usuario, si solo una sesión de Google aprobó tu app. El valor predeterminado es false. Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
booleano Opcional data-auto_select="true"

data-login_uri

Este atributo es el URI de tu extremo de acceso.

El valor debe coincidir exactamente con uno de los URIs de redireccionamiento autorizados para el cliente de OAuth 2.0 que configuraste en la Consola de la API y debe cumplir con nuestras reglas de validación de URIs de redireccionamiento.

Se puede omitir este atributo si la página actual es la página de acceso, en cuyo caso la credencial se publica en esta página de forma predeterminada.

La respuesta de la credencial de token de ID se publica en tu extremo de acceso cuando no se define una función de devolución de llamada y un usuario hace clic en los botones Acceder con Google o One Tap, o bien se realiza el acceso automático.

Consulta la siguiente tabla para obtener más información:

Tipo Opcional Ejemplo
URL El valor predeterminado es el URI de la página actual o el valor que especifiques.
Se ignora cuando se configuran data-ux_mode="popup" y data-callback.
data-login_uri="https://www.example.com/login"

Tu extremo de acceso debe controlar las solicitudes POST que contienen una clave credential con un valor de token de ID en el cuerpo.

El siguiente es un ejemplo de solicitud a tu extremo de acceso:

POST /login HTTP/1.1
Host: www.example.com
Content-Type: application/x-www-form-urlencoded

credential=ID_TOKEN

data-callback

Este atributo es el nombre de la función de JavaScript que controla el token de ID que se muestra. Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
string Es obligatorio si no se configura data-login_uri. data-callback="handleToken"

Se puede usar uno de los atributos data-login_uri y data-callback. Depende de las siguientes configuraciones de componentes y modo de UX:

  • El atributo data-login_uri es obligatorio para el modo de UX redirect del botón Acceder con Google, que ignora el atributo data-callback.

  • Se debe configurar uno de estos dos atributos para Google One Tap y el modo de UX popup del botón de Acceder con Google. Si se establecen ambos, el atributo data-callback tiene una prioridad más alta.

La API de HTML no admite funciones de JavaScript dentro de un espacio de nombres. En su lugar, usa una función global de JavaScript sin un espacio de nombres. Por ejemplo, usa mylibCallback en lugar de mylib.callback.

data-native_login_uri

Este atributo es la URL del extremo del controlador de credenciales de contraseña. Si configuras el atributo data-native_login_uri o el atributo data-native_callback, la biblioteca de JavaScript recurre al administrador de credenciales nativo cuando no hay una sesión de Google. No puedes establecer los atributos data-native_callback y data-native_login_uri. Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
string Opcional data-login_uri="https://www.example.com/password_login"

data-native_callback

Este atributo es el nombre de la función de JavaScript que controla la credencial de contraseña que se muestra desde el administrador de credenciales nativo del navegador. Si configuras el atributo data-native_login_uri o el atributo data-native_callback, la biblioteca de JavaScript recurre al administrador de credenciales nativo cuando no hay una sesión de Google. No puedes configurar data-native_callback y data-native_login_uri al mismo tiempo. Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
string Opcional data-native_callback="handlePasswordCredential"

La API de HTML no admite funciones de JavaScript dentro de un espacio de nombres. En su lugar, usa una función global de JavaScript sin un espacio de nombres. Por ejemplo, usa mylibCallback en lugar de mylib.callback.

data-native_id_param

Cuando envías la credencial de contraseña al extremo del controlador de credenciales de contraseña, puedes especificar el nombre del parámetro para el campo credential.id. El nombre predeterminado es email. Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
URL Opcional data-native_id_param="user_id"

data-native_password_param

Cuando envías la credencial de contraseña al extremo del controlador de credenciales de contraseña, puedes especificar el nombre del parámetro para el valor credential.password. El nombre predeterminado es password. Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
URL Opcional data-native_password_param="pwd"

data-cancel_on_tap_outside

Con este atributo, se establece si se cancela o no la solicitud de One Tap si el usuario hace clic fuera del mensaje. El valor predeterminado es true. Para inhabilitarlo, establece el valor en false. Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
booleano Opcional data-cancel_on_tap_outside="false"

data-prompt_parent_id

Este atributo establece el ID de DOM del elemento contenedor. Si no está configurado, el mensaje de One Tap se mostrará en la esquina superior derecha de la ventana. Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
string Opcional data-prompt_parent_id="parent_id"

Este atributo omite One Tap si la cookie especificada tiene un valor no vacío. Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
string Opcional data-skip_prompt_cookie="SID"

data-nonce

Este atributo es una cadena aleatoria que usa el token de ID para evitar ataques de repetición. Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
string Opcional data-nonce="biaqbm70g23"

La longitud del nonce se limita al tamaño máximo de JWT que admite tu entorno y a las restricciones de tamaño HTTP individuales del navegador y el servidor.

data-context

Este atributo cambia el texto del título y los mensajes que se muestran en el mensaje de One Tap. Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
string Opcional data-context="use"

En la siguiente tabla, se enumeran todos los contextos disponibles y sus descripciones:

Contexto
signin "Acceder con Google"
signup "Regístrate con Google"
use "Usar con Google"

data-moment_callback

Este atributo es el nombre de la función del objeto de escucha de notificaciones de estado de la IU del mensaje. Para obtener más información, consulta el tipo de datos PromptMomentNotification.

Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
string Opcional data-moment_callback="logMomentNotification"

La API de HTML no admite funciones de JavaScript dentro de un espacio de nombres. En su lugar, usa una función global de JavaScript sin un espacio de nombres. Por ejemplo, usa mylibCallback en lugar de mylib.callback.

Si necesitas mostrar One Tap en un dominio superior y sus subdominios, pasa el dominio superior a este atributo para que se use una sola cookie de estado compartido. Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
string Opcional data-state_cookie_domain="example.com"

data-ux_mode

Este atributo establece el flujo de UX que usa el botón Acceder con Google. El valor predeterminado es popup. Este atributo no tiene ningún impacto en la UX de One Tap. Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
string Opcional data-ux_mode="redirect"

En la siguiente tabla, se enumeran los modos de UX disponibles y sus descripciones.

Modo UX
popup Realiza el flujo de UX de acceso en una ventana emergente.
redirect Realiza el flujo de UX de acceso mediante un redireccionamiento de página completa.

data-allowed_parent_origin

Los orígenes que pueden incorporar el iframe intermedio. One Tap se ejecuta en el modo de iframe intermedio si se presenta este atributo. Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
cadena o array de cadenas Opcional data-allowed_parent_origin="https://example.com"

En la siguiente tabla, se enumeran los tipos de valores admitidos y sus descripciones.

Tipos de valores
string Un solo URI de dominio. "https://example.com"
string array Es una lista de URIs de dominio separados por comas. "https://news.example.com,https://local.example.com"

Si el valor del atributo data-allowed_parent_origin no es válido, la inicialización de One Tap del modo de iframe intermedio fallará y se detendrá.

También se admiten prefijos de comodines. Por ejemplo, "https://*.example.com" hace coincidir example.com y sus subdominios en todos los niveles (p. ej., news.example.com, login.news.example.com). Ten en cuenta lo siguiente cuando uses comodines:

  • Las cadenas de patrones no pueden estar compuestas solo por un comodín y un dominio de nivel superior. Por ejemplo, https://*.com y https://*.co.uk no son válidos. Como se indicó anteriormente, "https://*.example.com" coincide con example.com y sus subdominios. También puedes usar una lista separada por comas para representar 2 dominios diferentes. Por ejemplo, "https://example1.com,https://*.example2.com" coincide con los dominios example1.com, example2.com y los subdominios de example2.com.
  • Los dominios de comodín deben comenzar con un esquema https:// seguro, por lo que "*.example.com" se considera no válido.

data-intermediate_iframe_close_callback

Anula el comportamiento predeterminado del iframe intermedio cuando los usuarios presionan el botón "X" en la IU de One Tap para cerrarlo de forma manual. El comportamiento predeterminado es quitar el iframe intermedio del DOM de inmediato.

El campo data-intermediate_iframe_close_callback solo tiene efecto en el modo de iframe intermedio. Además, solo afecta al iframe intermedio, en lugar del iframe de One Tap. La IU de One Tap se quita antes de que se invoque la devolución de llamada.

Tipo Obligatorio Ejemplo
función Opcional data-intermediate_iframe_close_callback="logBeforeClose"

La API de HTML no admite funciones de JavaScript dentro de un espacio de nombres. En su lugar, usa una función global de JavaScript sin un espacio de nombres. Por ejemplo, usa mylibCallback en lugar de mylib.callback.

data-itp_support

Este campo determina si se debe habilitar la UX de One Tap actualizada en los navegadores que admiten la Prevención de seguimiento inteligente (ITP). El valor predeterminado es false. Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
booleano Opcional data-itp_support="true"

data-login_hint

Si tu aplicación sabe de antemano qué usuario debe acceder, puede proporcionar una sugerencia de acceso a Google. Si se realiza correctamente, se omite la selección de la cuenta. Los valores aceptados son: una dirección de correo electrónico o un campo sub de token de ID.

Para obtener más información, consulta la documentación de OpenID Connect para login_hint.

Tipo Obligatorio Ejemplo
String. Puede ser una dirección de correo electrónico o el valor del campo sub del token de ID. Opcional data-login_hint="elisa.beckett@gmail.com"

data-hd

Cuando un usuario tiene varias cuentas y solo debe acceder con su cuenta de Workspace, usa esto para proporcionar una sugerencia de nombre de dominio a Google. Si se realiza correctamente, las cuentas de usuario que se muestran durante la selección de cuentas se limitan al dominio proporcionado. Un valor de comodín: * solo ofrece cuentas de Workspace al usuario y excluye las cuentas de consumidor (user@gmail.com) durante la selección de cuentas.

Para obtener más información, consulta la documentación de OpenID Connect para hd.

Tipo Obligatorio Ejemplo
String. Un nombre de dominio completamente calificado o *. Opcional data-hd="*"

data-use_fedcm_for_prompt

Permite que el navegador controle las indicaciones de acceso del usuario y medie el flujo de acceso entre tu sitio web y Google. La configuración predeterminada es "false". Consulta la página Migra a FedCM para obtener más información.

Tipo Obligatorio Ejemplo
booleano Opcional data-use_fedcm_for_prompt="true"

data-enable_redirect_uri_validation

Habilita el flujo de redireccionamiento de botones que cumpla con las reglas de validación de URI de redireccionamiento.

Tipo Obligatorio Ejemplo
booleano Opcional data-enable_redirect_uri_validation="true"

Elemento con la clase "g_id_signin"

Si agregas g_id_signin al atributo class de un elemento, este se renderizará como un botón Acceder con Google.

Puedes renderizar varios botones de Acceder con Google en la misma página. Cada botón puede tener su propia configuración visual. Los siguientes atributos de datos definen la configuración.

Atributos de datos visuales

En la siguiente tabla, se enumeran los atributos de datos visuales y sus descripciones:

Atributo
data-type El tipo de botón: ícono o botón estándar.
data-theme El tema del botón. Por ejemplo, relleno_azul o relleno_negro.
data-size Es el tamaño del botón. Por ejemplo, pequeño o grande.
data-text El texto del botón Por ejemplo, "Acceder con Google" o "Regístrate con Google".
data-shape Es la forma del botón. Por ejemplo, rectangular o circular.
data-logo_alignment La alineación del logotipo de Google: izquierda o centro.
data-width Es el ancho del botón, en píxeles.
data-locale El texto del botón se renderiza en el idioma establecido en este atributo.
data-click_listener Si se establece, se llama a esta función cuando se hace clic en el botón Acceder con Google.
data-state Si se establece, esta cadena se muestra con el token de ID.

Tipos de atributos

En las siguientes secciones, se incluyen detalles sobre el tipo de cada atributo y un ejemplo.

data-type

El tipo de botón. El valor predeterminado es standard. Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
string data-type="icon"

En la siguiente tabla, se enumeran todos los tipos de botones disponibles y sus descripciones:

Tipo
standard
Es un botón con texto o información personalizada.
icon
Un botón de ícono sin texto.

data-theme

El tema del botón. El valor predeterminado es outline. Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
string Opcional data-theme="filled_blue"

En la siguiente tabla, se enumeran los temas disponibles y sus descripciones:

Tema
outline
Un botón estándar con fondo blanco Un botón de ícono con fondo blanco Un botón personalizado con fondo blanco
Es el tema de botón estándar.
filled_blue
Un botón estándar con fondo azul Un botón de ícono con fondo azul Un botón personalizado con fondo azul
El tema de botón con relleno azul.
filled_black
Un botón estándar con fondo negro Un botón de ícono con fondo negro Un botón personalizado con fondo negro
Es el tema de botón con relleno negro.

data-size

Es el tamaño del botón. El valor predeterminado es large. Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
string Opcional data-size="small"

En la siguiente tabla, se enumeran los tamaños de botones disponibles y sus descripciones.

Tamaño
large
Un botón estándar grande Un botón de ícono grande Un botón grande y personalizado
Un botón grande.
medium
Un botón estándar mediano Un botón de ícono mediano
Un botón de tamaño mediano.
small
Un botón pequeño Un botón de ícono pequeño
Un botón pequeño.

data-text

El texto del botón El valor predeterminado es signin_with. No hay diferencias visuales para el texto de los botones de íconos que tienen diferentes atributos data-text. La única excepción es cuando se lee el texto para la accesibilidad de la pantalla.

Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
string Opcional data-text="signup_with"

En la siguiente tabla, se enumeran los textos de los botones disponibles y sus descripciones:

Texto
signin_with
Un botón estándar con la etiqueta &quot;Acceder con Google&quot; Un botón de ícono sin texto visible
El texto del botón es "Acceder con Google".
signup_with
Un botón estándar con la etiqueta &quot;Regístrate con Google&quot; Un botón de ícono sin texto visible
El texto del botón es "Regístrate con Google".
continue_with
Un botón estándar con la etiqueta &quot;Continuar con Google&quot; Un botón de ícono sin texto visible
El texto del botón es "Continuar con Google".
signin
Un botón estándar con la etiqueta &quot;Acceder&quot; Un botón de ícono sin texto visible
El texto del botón es "Acceder".

data-shape

Es la forma del botón. El valor predeterminado es rectangular. Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
string Opcional data-shape="rectangular"

En la siguiente tabla, se enumeran las formas de botones disponibles y sus descripciones:

Forma
rectangular
Un botón estándar rectangular Un botón de ícono rectangular Un botón rectangular personalizado
El botón rectangular. Si se usa para el tipo de botón icon, es lo mismo que square.
pill
Un botón estándar con forma de píldora Un botón de ícono con forma de píldora Un botón personalizado con forma de píldora
El botón con forma de píldora. Si se usa para el tipo de botón icon, es lo mismo que circle.
circle
Un botón estándar circular Un botón de ícono circular Un botón circular personalizado
El botón con forma de círculo. Si se usa para el tipo de botón standard, es lo mismo que pill.
square
Un botón cuadrado estándar Un botón de ícono cuadrado Un botón cuadrado personalizado
El botón cuadrado. Si se usa para el tipo de botón standard, es lo mismo que rectangular.

data-logo_alignment

La alineación del logotipo de Google. El valor predeterminado es left. Este atributo solo se aplica al tipo de botón standard. Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
string Opcional data-logo_alignment="center"

En la siguiente tabla, se enumeran las alineaciones disponibles y sus descripciones:

logo_alignment
left
Un botón estándar con el logotipo de la G a la izquierda
Alinea el logotipo de Google a la izquierda.
center
Un botón estándar con el logotipo de la G en el centro
Alinea el logotipo de Google en el centro.

data-width

Es el ancho mínimo del botón, en píxeles. El ancho máximo disponible es de 400 píxeles.

Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
string Opcional data-width=400

data-locale

Opcional. Muestra el texto del botón con la configuración regional especificada; de lo contrario, se usará la configuración predeterminada de la Cuenta de Google o del navegador del usuario. Agrega el parámetro hl y el código de idioma a la directiva src cuando cargues la biblioteca, por ejemplo: gsi/client?hl=<iso-639-code>.

Si no se establece, se usa la configuración regional predeterminada del navegador o la preferencia del usuario de la sesión de Google. Por lo tanto, es posible que diferentes usuarios vean versiones diferentes de botones localizados y, posiblemente, con diferentes tamaños.

Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
string Opcional data-locale="zh_CN"

data-click_listener

Puedes definir una función de JavaScript a la que se llamará cuando se haga clic en el botón Acceder con Google con el atributo data-click_listener.

  <script>
    function onClickHandler(){
      console.log("Sign in with Google button clicked...")
    }
  </script>
  .....
  <div class="g_id_signin"
      data-size="large"
      data-theme="outline"
      data-click_listener="onClickHandler">
  </div>

En este ejemplo, el mensaje Se hizo clic en el botón Acceder con Google… se registra en la consola cuando se hace clic en el botón Acceder con Google.

data-state

Opcional: Como se pueden renderizar varios botones de Acceder con Google en la misma página, puedes asignar a cada botón una cadena única. Se mostrará la misma cadena junto con el token de ID, de modo que puedas identificar en qué botón hizo clic el usuario para acceder.

Consulta la siguiente tabla para obtener más información:

Tipo Obligatorio Ejemplo
string Opcional data-state="button 1"

Integración del servidor

Tus extremos del servidor deben controlar las siguientes solicitudes HTTP POST.

El extremo del controlador de tokens de ID

El extremo del controlador de tokens de ID procesa el token de ID. Según el estado de la cuenta correspondiente, puedes permitir que el usuario acceda y dirigirlo a una página de registro o a una página de vinculación de cuentas para obtener información adicional.

La solicitud POST HTTP contiene la siguiente información:

Formato Nombre Descripción
Cookie g_csrf_token Es una cadena aleatoria que cambia con cada solicitud al extremo del controlador.
Parámetro de solicitud g_csrf_token Es una cadena que es igual al valor de cookie anterior, g_csrf_token.
Parámetro de solicitud credential El token de ID que emite Google.
Parámetro de solicitud select_by Cómo se selecciona la credencial
Parámetro de solicitud state Este parámetro solo se define cuando el usuario hace clic en un botón Acceder con Google para acceder y se especifica el atributo state del botón.

credencial

Cuando se decodifica, el token de ID se ve como en el siguiente ejemplo:

header
{
  "alg": "RS256",
  "kid": "f05415b13acb9590f70df862765c655f5a7a019e", // JWT signature
  "typ": "JWT"
}
payload
{
  "iss": "https://accounts.google.com", // The JWT's issuer
  "nbf":  161803398874,
  "aud": "314159265-pi.apps.googleusercontent.com", // Your server's client ID
  "sub": "3141592653589793238", // The unique ID of the user's Google Account
  "hd": "gmail.com", // If present, the host domain of the user's GSuite email address
  "email": "elisa.g.beckett@gmail.com", // The user's email address
  "email_verified": true, // true, if Google has verified the email address
  "azp": "314159265-pi.apps.googleusercontent.com",
  "name": "Elisa Beckett",
                            // If present, a URL to user's profile picture
  "picture": "https://lh3.googleusercontent.com/a-/e2718281828459045235360uler",
  "given_name": "Eliza",
  "family_name": "Beckett",
  "iat": 1596474000, // Unix timestamp of the assertion's creation time
  "exp": 1596477600, // Unix timestamp of the assertion's expiration time
  "jti": "abc161803398874def"
}

El campo sub es un identificador único a nivel global para la Cuenta de Google. Solo usa el campo sub como identificador del usuario, ya que es único entre todas las Cuentas de Google y nunca se reutiliza. No uses la dirección de correo electrónico como identificador, ya que una Cuenta de Google puede tener varias direcciones de correo electrónico en diferentes momentos.

Con los campos email, email_verified y hd, puedes determinar si Google aloja una dirección de correo electrónico y es la fuente de autoridad. En los casos en los que Google es la fuente de autoridad, se confirma que el usuario es el propietario legítimo de la cuenta.

Casos en los que Google es la fuente de autoridad:

  • email tiene un sufijo @gmail.com, es una cuenta de Gmail.
  • Si email_verified es verdadero y hd está configurado, se trata de una cuenta de Google Workspace.

Los usuarios pueden registrarse en Cuentas de Google sin usar Gmail ni Google Workspace. Cuando email no contiene un sufijo @gmail.com y hd no está presente, Google no es confiable y se recomienda usar una contraseña o algún otro método de desafío para verificar al usuario. email_verified también puede ser verdadero, ya que Google verificó inicialmente al usuario cuando se creó la Cuenta de Google. Sin embargo, es posible que la propiedad de la cuenta de correo electrónico de terceros haya cambiado.

El campo exp muestra la hora de vencimiento para que verifiques el token en el servidor. Es de una hora para el token de ID que se obtiene de Acceder con Google. Debes verificar el token antes del tiempo de vencimiento. No uses exp para la administración de sesiones. Un token de ID vencido no significa que el usuario salió de su cuenta. Tu app es responsable de la administración de las sesiones de tus usuarios.

select_by

En la siguiente tabla, se enumeran los valores posibles para el campo select_by. El tipo de botón que se usa junto con la sesión y el estado de consentimiento se usa para establecer el valor.

  • El usuario presionó el botón One Tap o Acceder con Google, o bien usó el proceso de acceso automático sin contacto.

  • Se encontró una sesión existente o el usuario seleccionó una Cuenta de Google y accedió a ella para establecer una sesión nueva.

  • Antes de compartir credenciales de token de ID con tu app, el usuario puede hacer lo siguiente:

    • presionaron el botón Confirmar para dar su consentimiento para compartir credenciales.
    • había otorgado previamente su consentimiento y usó la opción Seleccionar una cuenta para elegir una Cuenta de Google.

El valor de este campo se establece en uno de estos tipos:

Valor Descripción
auto Acceso automático de un usuario con una sesión existente que ya había otorgado consentimiento para compartir credenciales Solo se aplica a los navegadores que no son compatibles con FedCM.
user Un usuario con una sesión existente que anteriormente había otorgado su consentimiento presionó el botón "Continuar como" de One Tap para compartir credenciales. Solo se aplica a los navegadores que no son compatibles con FedCM.
fedcm Un usuario presionó el botón "Continuar como" de One Tap para compartir credenciales con FedCM. Solo se aplica a los navegadores compatibles con FedCM.
fedcm_auto Acceso automático de un usuario con una sesión existente que ya había otorgado consentimiento para compartir credenciales con FedCM One Tap Solo se aplica a los navegadores compatibles con FedCM.
user_1tap Un usuario con una sesión existente presionó el botón "Continuar como" de One Tap para otorgar consentimiento y compartir credenciales. Solo se aplica a Chrome 75 y versiones posteriores.
user_2tap Un usuario sin una sesión existente presionó el botón "Continuar como" de One Tap para seleccionar una cuenta y, luego, presionó el botón Confirmar en una ventana emergente para otorgar su consentimiento y compartir las credenciales. Se aplica a los navegadores que no son de Chromium.
btn Un usuario con una sesión existente que anteriormente otorgó su consentimiento presionó el botón Acceder con Google y seleccionó una Cuenta de Google en "Elegir una cuenta" para compartir credenciales.
btn_confirm Un usuario con una sesión existente presionó el botón Acceder con Google y el botón Confirmar para otorgar su consentimiento y compartir credenciales.
btn_add_session Un usuario sin una sesión existente que anteriormente otorgó consentimiento presionó el botón Acceder con Google para seleccionar una Cuenta de Google y compartir credenciales.
btn_confirm_add_session Un usuario sin una sesión existente primero presionó el botón Acceder con Google para seleccionar una Cuenta de Google y, luego, presionó el botón Confirmar para dar su consentimiento y compartir las credenciales.

state

Este parámetro solo se define cuando el usuario hace clic en un botón Acceder con Google para acceder y se especifica el atributo data-state del botón en el que se hizo clic. El valor de este campo es el mismo que especificaste en el atributo data-state del botón.

Como se pueden renderizar varios botones de Acceder con Google en la misma página, puedes asignar a cada botón una cadena única. Por lo tanto, puedes usar este parámetro state para identificar en qué botón hizo clic el usuario para acceder.

Extremo del controlador de credenciales de contraseña

El extremo del controlador de credenciales de contraseña procesa las credenciales de contraseña que recupera el administrador de credenciales nativo.

La solicitud POST HTTP contiene la siguiente información:

Formato Nombre Descripción
Cookie g_csrf_token Es una cadena aleatoria que cambia con cada solicitud al extremo del controlador.
Parámetro de solicitud g_csrf_token Es una cadena que es igual al valor de cookie anterior, g_csrf_token.
Parámetro de solicitud email Es el token de ID que emite Google.
Parámetro de solicitud password Cómo se selecciona la credencial