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 según lo esperado 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 impide que las apps web nuevas usen la biblioteca obsoleta de la plataforma de Acceso con Google, mientras que las apps que la usan pueden continuar hasta nuevo aviso. No se estableció una fecha final de desactivación (apagado) 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 no presentan inconvenientes, la actualización presenta diferencias en los mensajes del usuario, la política de permisos de 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 tiempo. 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 ese momento, se ignorará el parámetro
use_fedcm
y todas las solicitudes de acceso de los usuarios usarán FedCM.
Próximos pasos
Existen tres opciones que puedes seguir:
- Realiza una evaluación del impacto y, si es necesario, actualiza la app web. Este enfoque evalúa si se usan funciones que requieren cambios en la app web. Las instrucciones se proporcionan en la siguiente sección de esta guía.
- Mueve a la biblioteca de Google Identity Services (GIS). Se recomienda cambiar a la biblioteca de acceso más reciente y compatible. Para hacerlo, 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 a través de una actualización retrocompatible o si los cambios son necesarios para evitar que los usuarios no puedan acceder cuando la biblioteca de la plataforma de Acceso con Google adopta 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.
Abre
chrome://flags
y establece los siguientes atributos con estos valores:- #fedcm-authz habilitado
- #tracking-protection-3pcd habilitado
- #third-party-cookie-deprecation-trial Inhabilitada
- #tpcd-metadata-grants inhabilitado
- #tpcd-heuristics-grants Inhabilitado
y reinicia Chrome.
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 incluyendo
api.js
,client.js
oplatform.js
en una etiqueta<script src>
(la solicitud puede usar cualquiera de estos nombres de paquetes para la biblioteca).Confirma la configuración de OAuth para tu ID de cliente de OAuth:
- Abre la página Credenciales de la Google API Console
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 que se indican en estas secciones de esta guía para identificar y solucionar 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
.
Ubica la solicitud a 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 en 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 Domain y platform.js
en la columna Name.
Verifica la política de permisos de 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 Elements 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 la CSP está definida en el encabezado de la 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 agrega a
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.
Verifica si hay cambios en el mensaje del usuario
Existen algunas diferencias en el comportamiento de las instrucciones del 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 realizado 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 su información de acceso 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 está a cargo de 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, cuando presiona el botón de acceso, llama a
auth2.signIn
.En la demostración dos, se usan un elemento
<div>
, estilos de CSS y un gráfico personalizado para controlar la apariencia 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
durante el cierre de sesión.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 nueva sesión.
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
del elemento<div>
, llama aauth2.signIn
conauth2.attachClickHandler
durante el acceso oauth2.signOut
cuando sales.Cómo solicitar permisos adicionales
En esta demo, se presiona un botón para solicitar permisos adicionales de OAuth 2.0, 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 demostración, para los usuarios que ya accedieron, el evento
onload
de la página muestra las credenciales de 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
al salir.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.
Cuando se elige la habilitación, se envía al usuario a través del flujo de acceso de FedCM, mientras que, si lo hace, se envía al usuario a través del 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 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.