En esta guía, se analiza la adopción de las APIs de FedCM por parte de la biblioteca de la plataforma de Google Sign-in. Los temas incluyen el Cronograma y los Próximos pasos para una actualización retrocompatible de la biblioteca, cómo realizar una evaluación de impacto y verificar que el acceso de los usuarios siga funcionando como se espera y, si es necesario, instrucciones para actualizar tu app web. También se incluyen opciones para administrar el período de transición junto con cómo obtener ayuda.
Estado de la biblioteca
Se bloqueó el uso de la biblioteca obsoleta de la plataforma de Acceso con Google en las apps web nuevas, mientras que las apps que usan la biblioteca pueden seguir usándolas hasta nuevo aviso. No se estableció una fecha de desactivación final (cierre) para la biblioteca. Consulta Baja de la compatibilidad y desactivación para obtener más información.
Una actualización retrocompatible agrega APIs de FedCM a la biblioteca de Acceso con Google. Si bien la mayoría de los cambios son fluidos, la actualización introduce diferencias en las instrucciones para el usuario, la política de permisos del iframe y la Política de Seguridad del Contenido (CSP). Estos cambios pueden afectar a tu app web y requerir cambios en el código de la aplicación y la configuración del sitio.
Durante el período de transición, una opción de configuración controla si se usan o no las APIs de FedCM durante el acceso del usuario.
Después del período de transición, las APIs de FedCM son obligatorias para todas las apps web que usan la biblioteca de Acceso con Google.
Cronograma
Última actualización: septiembre de 2024
Estas son las fechas y los cambios que afectan el comportamiento de acceso de los usuarios:
- Marzo de 2023: Baja de la compatibilidad con la biblioteca de la plataforma de Acceso con Google.
- Comienza el período de transición de julio de 2024 y se agrega compatibilidad de la biblioteca de la plataforma de Acceso con Google con las APIs de FedCM. De forma predeterminada, Google controla el porcentaje de solicitudes de acceso de los usuarios con FedCM durante este período. Las apps web pueden anular este comportamiento de forma explícita con el parámetro
use_fedcm
. - Adopción obligatoria en marzo de 2025 de las APIs de FedCM por parte de la biblioteca de la plataforma de Acceso con Google. Después de este proceso, se ignora el parámetro
use_fedcm
y todas las solicitudes de acceso de los usuarios usan FedCM.
Próximos pasos
Existen tres opciones que puedes seguir:
- Realiza una evaluación de impacto y, si es necesario, actualiza tu app web. Con este enfoque, se evalúa si se están usando las funciones que requieren cambios en tu app web. En la siguiente sección de esta guía, se proporcionan instrucciones.
- Mueve a la biblioteca de Google Identity Services (GIS). Se recomienda que cambies a la biblioteca de acceso más reciente y compatible. Para ello, sigue estas instrucciones.
- No hacer nada. Tu app web se actualizará automáticamente cuando la biblioteca de Acceso con Google se traslade a las APIs de FedCM para el acceso de los usuarios. Esta es la opción que requiere menos trabajo, pero existe el riesgo de que los usuarios no puedan acceder a tu app web.
Realiza una evaluación de impacto
Sigue estas instrucciones para determinar si tu app web se puede actualizar sin problemas mediante una actualización retrocompatible o si se deben realizar cambios para evitar que los usuarios no puedan acceder cuando la biblioteca de la plataforma de Acceso con Google adopte por completo las APIs de FedCM.
Configuración
Las APIs del navegador y la versión más reciente de la biblioteca de la plataforma de Acceso con Google son necesarias para usar FedCM durante el acceso del usuario.
Antes de continuar, ten en cuenta lo siguiente:
- Actualiza a la versión más reciente de Chrome para computadoras. Chrome para Android requiere la versión M128 o una posterior y no se puede probar con versiones anteriores.
- Establece
use_fedcm
entrue
cuando inicialices la biblioteca de la plataforma de Acceso con Google en tu app web. Por lo general, la inicialización se ve de la siguiente manera:gapi.client.init({use_fedcm: true})
ogapi.auth2.init({use_fedcm: true})
ogapi.auth2.authorize({use_fedcm: true})
.
- Invalida las versiones almacenadas en caché de la biblioteca de la plataforma de Acceso con Google.
Por lo general, este paso no es necesario, ya que la versión más reciente de la biblioteca se descarga directamente en el navegador si se incluye
api.js
,client.js
oplatform.js
en una etiqueta<script src>
(la solicitud puede usar cualquiera de estos nombres de paquete para la biblioteca). Confirma la configuración de OAuth para tu ID de cliente de OAuth:
- Abre la página Credenciales de la
Verifica que el URI de tu sitio web se incluya en Orígenes autorizados de JavaScript. El URI solo incluye el esquema y el nombre de host completamente calificado. Por ejemplo,
https://www.example.com
De manera opcional, las credenciales se pueden mostrar mediante un redireccionamiento a un extremo que alojas en lugar de a través de una devolución de llamada de JavaScript. Si este es el caso, verifica que tus URIs de redireccionamiento se incluyan en URIs de redireccionamiento autorizados. Los URIs de redireccionamiento incluyen el esquema, el nombre de host completamente calificado y la ruta de acceso, y deben cumplir con las reglas de validación de URIs de redireccionamiento. Por ejemplo,
https://www.example.com/auth-receiver
.
Prueba
Después de seguir las instrucciones de Configuración, haz lo siguiente:
- Cierra todas las ventanas de incógnito de Chrome existentes y abre una nueva. De esta manera, se borran las cookies o el contenido almacenado en caché.
- Carga la página de acceso del usuario y, luego, intenta acceder.
Sigue las instrucciones de estas secciones de la guía para identificar y solucionar los problemas conocidos:
Busca errores o advertencias en la consola relacionados con la biblioteca de Acceder con Google.
Repite este proceso hasta que no se produzcan errores y puedas acceder correctamente. Para verificar que el acceso se realizó correctamente, confirma que
BasicProfile.getEmail()
muestre tu dirección de correo electrónico y queGoogleUser.isSignedIn()
seaTrue
.
Cómo encontrar la solicitud de la biblioteca de Acceso con Google
Para verificar si son necesarios los cambios en permissions-policy y la Política de Seguridad del Contenido, inspecciona la solicitud de la biblioteca de la plataforma de Acceso con Google. Para ello, busca la solicitud con el nombre y el origen de la biblioteca:
- En Chrome, abre el panel Red de DevTools y vuelve a cargar la página.
- Usa los valores de las columnas Domain y Name para ubicar la solicitud de biblioteca:
- El dominio es
apis.google.com
y - El nombre es
api.js
,client.js
oplatform.js
. El valor específico de Name depende del paquete de bibliotecas que solicita el documento.
- El dominio es
Por ejemplo, filtra por apis.google.com
en la columna Dominio y platform.js
en la columna Nombre.
Verifica la política de permisos del iframe
Es posible que tu sitio use la biblioteca de la plataforma de Acceso con Google dentro de un iframe de origen cruzado. Si es así, se necesita una actualización.
Después de seguir las instrucciones para encontrar la solicitud de la biblioteca de Acceso con Google, selecciona la solicitud de la biblioteca de Acceso con Google en el panel Red de DevTools y busca el encabezado Sec-Fetch-Site
en la sección Encabezados de solicitud de la pestaña Encabezados. Si el valor del encabezado es el siguiente:
same-site
osame-origin
, entonces no se aplican las políticas de origen cruzado y no se necesitan cambios.- Es posible que se deban realizar cambios en
cross-origin
si se usa un iframe.
Para confirmar si hay un iframe, haz lo siguiente:
- Selecciona el panel Elementos en las Herramientas para desarrolladores de Chrome.
- Usa Ctrl + F para encontrar un iframe en el documento.
Si se encuentra un iframe, inspecciona el documento para verificar si hay llamadas a funciones de gapi.auth2 o directivas script src
que carguen la biblioteca de Acceso con Google dentro del iframe. Si este es el caso, haz lo siguiente:
- Agrega la política de permisos
allow="identity-credentials-get"
al iframe superior.
Repite este proceso para cada iframe del documento. Los iframes se pueden anidar, así que asegúrate de agregar la directiva allow a todos los iframes superiores circundantes.
Cómo verificar la Política de Seguridad del Contenido
Si tu sitio usa una Política de Seguridad del Contenido, es posible que debas actualizarla para permitir el uso de la biblioteca de Acceder con Google.
Después de seguir las instrucciones para encontrar la solicitud de la biblioteca de Acceso con Google, selecciona la solicitud de la biblioteca de Acceso con Google en el panel Red de DevTools y busca el encabezado Content-Security-Policy
en la sección Encabezados de respuesta de la pestaña Encabezados.
Si no se encuentra el encabezado, no es necesario realizar cambios. De lo contrario, verifica si alguna de estas directivas de CSP está definida en el encabezado de CSP y actualízalas de la siguiente manera:
Agregar
https://apis.google.com/js/
,https://accounts.google.com/gsi/
yhttps://acounts.google.com/o/fedcm/
a cualquier directivaconnect-src
,default-src
oframe-src
Se agregó
https://apis.google.com/js/bundle-name.js
a la directivascript-src
. Reemplazabundle-name.js
porapi.js
,client.js
oplatform.js
según el paquete de bibliotecas que solicite el documento.
Cómo verificar si hay cambios en las instrucciones para el usuario
Hay algunas diferencias en el comportamiento de las indicaciones para el usuario. FedCM agrega un diálogo modal que muestra el navegador y actualiza los requisitos de activación del usuario.
Diálogo modal
Inspecciona el diseño de tu sitio para confirmar que el contenido subyacente se pueda superponer de forma segura y ocultar temporalmente con el diálogo modal del navegador. Si no es así, es posible que debas ajustar el diseño o la posición de algunos elementos de tu sitio web.
Activación del usuario
El MTC incluye requisitos actualizados para la activación de los usuarios. Presionar un botón o hacer clic en un vínculo son ejemplos de gestos del usuario que permiten que los orígenes de terceros realicen solicitudes de red o almacenen datos. Con FedCM, el navegador solicita el consentimiento del usuario en los siguientes casos:
- un usuario accede por primera vez a una app web con una instancia de navegador nueva
- Se llama a
GoogleAuth.signIn
.
Actualmente, si el usuario accedió a tu sitio web antes, puedes obtener su información de acceso cuando inicializas la biblioteca de Acceso con Google con gapi.auth2.init
, sin más interacciones del usuario. Esto ya no es posible, a menos que el usuario haya pasado por el flujo de acceso de FedCM al menos una vez.
Si habilitas FedCM y llamas a GoogleAuth.signIn
, la próxima vez que el mismo usuario visite tu sitio web, gapi.auth2.init
podrá obtener la información de acceso del usuario durante la inicialización sin interacción del usuario.
Casos de uso habituales
La documentación para desarrolladores de la biblioteca de Acceder con Google incluye guías y muestras de código para casos de uso comunes. En esta sección, se explica cómo el FedCM afecta su comportamiento.
Cómo integrar el Acceso con Google en tu app web
En esta demo, un elemento
<div>
y una clase renderizan el botón y, para los usuarios que ya accedieron, el eventoonload
de la página muestra las credenciales del usuario. Se requiere la interacción del usuario para acceder y establecer una sesión nueva.La inicialización de la biblioteca la realiza la clase
g-signin2
, que llama agapi.load
ygapi.auth2.init
.Un gesto del usuario, un evento
onclick
de un elemento<div>
, llama aauth2.signIn
durante el acceso o aauth2.signOut
durante el cierre de sesión.Cómo compilar un botón de Acceso con Google personalizado
En la demo uno, se usan atributos personalizados para controlar la apariencia del botón de acceso y, para los usuarios que ya accedieron, el evento
onload
de la página muestra las credenciales del usuario. Se requiere la interacción del usuario para acceder y establecer una sesión nueva.La inicialización de la biblioteca se realiza a través de un evento
onload
para la bibliotecaplatform.js
, ygapi.signin2.render
muestra el botón.Un gesto del usuario, que presiona el botón de acceso, llama a
auth2.signIn
.En la demostración dos, se usa un elemento
<div>
, diseños de CSS y un elemento gráfico personalizado para controlar el aspecto del botón de acceso. Se requiere la interacción del usuario para acceder y establecer una sesión nueva.La inicialización de la biblioteca se realiza cuando se carga el documento con una función de inicio que llama a
gapi.load
,gapi.auth2.init
ygapi.auth2.attachClickHandler
.Un gesto del usuario, un evento
onclick
de elemento<div>
, llama aauth2.signIn
conauth2.attachClickHandler
durante el acceso oauth2.signOut
al salir.Supervisa el estado de la sesión del usuario
En esta demostración, se presiona un botón para que el usuario acceda a su cuenta y salga de ella. Se requiere la interacción del usuario para acceder y establecer una sesión nueva.
Para inicializar la biblioteca, llama directamente a
gapi.load
,gapi.auth2.init
ygapi.auth2.attachClickHandler()
después de cargarplatform.js
conscript src
.Un gesto del usuario, un evento
onclick
de elemento<div>
, llama aauth2.signIn
conauth2.attachClickHandler
durante el acceso oauth2.signOut
durante el cierre de sesión.Cómo solicitar permisos adicionales
En esta demo, se presiona un botón para solicitar permisos de OAuth 2.0 adicionales, obtener un token de acceso nuevo y, para los usuarios que ya accedieron, el evento
onload
de la página muestra las credenciales del usuario. Se requiere la interacción del usuario para acceder y establecer una sesión nueva.El evento
onload
de la bibliotecaplatform.js
realiza la inicialización de la biblioteca a través de una llamada agapi.signin2.render
.Un gesto del usuario, hacer clic en un elemento
<button>
, activa una solicitud de permisos de OAuth 2.0 adicionales congoogleUser.grant
oauth2.signOut
cuando se cierra la sesión.Cómo integrar el Acceso con Google con objetos de escucha
En esta demo, para los usuarios que ya accedieron, el evento
onload
de la página muestra las credenciales del usuario. Se requiere la interacción del usuario para acceder y establecer una sesión nueva.La inicialización de la biblioteca se realiza cuando se carga el documento con una función de inicio que llama a
gapi.load
,gapi.auth2.init
ygapi.auth2.attachClickHandler
. A continuación, se usanauth2.isSignedIn.listen
yauth2.currentUser.listen
para configurar la notificación de cambios en el estado de la sesión. Por último, se llama aauth2.SignIn
para que devuelva las credenciales de los usuarios que accedieron.Un gesto del usuario, un evento
onclick
de elemento<div>
, llama aauth2.signIn
conauth2.attachClickHandler
durante el acceso oauth2.signOut
durante el cierre de sesión.Acceso con Google para apps del servidor
En esta demo, se usa un gesto del usuario para solicitar un código de autenticación de OAuth 2.0, y una devolución de llamada de JS realiza una llamada AJAX para enviar la respuesta al servidor de backend para su verificación.
La inicialización de la biblioteca se realiza con un evento
onload
para la bibliotecaplatform.js
, que usa una función de inicio para llamar agapi.load
ygapi.auth2.init
.Un gesto del usuario, que hace clic en un elemento
<button>
, activa una solicitud de un código de autorización llamando aauth2.grantOfflineAccess
.-
FedCM requiere el consentimiento para cada instancia del navegador, incluso si los usuarios de Android ya accedieron a sus cuentas. Es necesario un consentimiento único.
Administra el período de transición
Durante el período de transición, es posible que un porcentaje de los accesos de los usuarios use FedCM. El porcentaje exacto puede variar con el tiempo. De forma predeterminada, Google controla cuántas solicitudes de acceso usan FedCM, pero puedes habilitar o inhabilitar el uso de FedCM durante el período de transición. Al final del período de transición, el FedCM se vuelve obligatorio y se usa para todas las solicitudes de acceso.
Si aceptas la opción, el usuario pasará por el flujo de acceso de FedCM, mientras que si la rechazas, pasará por el flujo de acceso existente. Este comportamiento se controla con el parámetro use_fedcm
.
Habilitar
Puede ser útil controlar si todos o algunos de los intentos de acceso a tu
sitio usan las APIs de FedCM. Para ello, establece use_fedcm
en true
cuando inicialices la biblioteca de la plataforma. En este caso, la solicitud de acceso del usuario usa las APIs de FedCM.
Inhabilitación
Durante el período de transición, un porcentaje de los intentos de acceso de los usuarios a tu sitio usará las APIs de FedCM de forma predeterminada. Si necesitas más tiempo para realizar cambios en tu
app, puedes inhabilitar temporalmente el uso de las APIs de FedCM. Para ello, establece use_fedcm
en false
cuando inicialices la biblioteca de la plataforma. En este caso, la solicitud de acceso del usuario no usará las APIs de FedCM.
Después de que se produce la adopción obligatoria, la biblioteca de la plataforma de Acceso con Google ignora cualquier configuración de use_fedcm
.
Obtener ayuda
Busca o haz preguntas en StackOverflow con la etiqueta google-signin.