Publicado el 12 de mayo de 2026
El modo de IU inmediato para los accesos es una capacidad web diseñada para optimizar los flujos de acceso. Esta función te permite ofrecer de forma proactiva llaves de acceso y contraseñas administradas directamente a tus usuarios cuando llegan a un momento de acceso, como cuando hacen clic en un botón de Acceder o Finalizar compra.
Resumen
El modo de IU inmediato proporciona un modo que falla rápidamente si no hay credenciales disponibles de forma local. Este comportamiento refleja las APIs de preferImmediatelyAvailableCredentials que se encuentran en plataformas móviles como Android y iOS. Cuando existen credenciales, el navegador le presenta al usuario un diálogo de acceso inmediato. De lo contrario, rechaza la promesa de forma silenciosa, lo que te permite proporcionar métodos de acceso alternativos, por ejemplo, un formulario de acceso, sin interrumpir la experiencia del usuario.
A partir de mayo de 2026, Chrome será el único navegador que admitirá el modo de IU inmediato.
Comprueba los requisitos previos
Para usar el modo de IU inmediato, el usuario ya debe tener credenciales aptas disponibles de forma local en su dispositivo. En Chrome, estas credenciales incluyen lo siguiente:
- Llaves de acceso guardadas en un proveedor de llaves de acceso, como el Administrador de contraseñas de Google, Windows Hello o el llavero de iCloud
- Contraseñas guardadas en el Administrador de contraseñas de Google
Si no existen credenciales locales, la API rechaza la solicitud sin mostrar el cuadro de diálogo de acceso inmediato.
Compatibilidad con la función de detección
Antes de llamar al modo de IU inmediato, verifica si el navegador admite la capacidad immediateGet con el método PublicKeyCredential.getClientCapabilities(). Si no se admite, recurre a los métodos de acceso existentes, como los formularios de correo electrónico y contraseña, la verificación del número de teléfono o los accesos sociales.
async function checkImmediateAvailability() {
try {
const capabilities = await PublicKeyCredential.getClientCapabilities();
if (capabilities.immediateGet) {
console.log("Immediate UI mode is supported.");
} else {
console.log("Immediate UI mode is NOT supported.");
}
} catch (error) {
console.error("Error checking client capabilities:", error);
}
}
Para obtener una compatibilidad más amplia con los navegadores, usa el polyfill disponible en el repositorio de GitHub de polyfills de WebAuthn.
Solicita credenciales
Para activar el flujo de acceso inmediato, llama a navigator.credentials.get() con el campo uiMode establecido en 'immediate'.
Si incluyes password: true en tu solicitud, los usuarios podrán aprovechar esta experiencia si el navegador admite credenciales de contraseña.
// This call must follow a user gesture, like a button click
button.addEventListener('click', async (event) => {
event.preventDefault();
try {
const cred = await navigator.credentials.get({
password: true,
publicKey: {
challenge: serverGeneratedChallenge,
rpId: 'example.com'
},
uiMode: 'immediate',
});
// Handle successful sign-in
} catch (error) {
if (error.name === 'NotAllowedError') {
// Provide a fallback sign-in experience
showFallbackUI();
}
}
});
Debes controlar el NotAllowedError en un bloque catch para proporcionar una experiencia de acceso alternativa.
Cómo controlar los flujos de acceso
Puedes implementar el modo de IU inmediato en dos situaciones principales.
Accede con un botón
Proporciona un botón de acceso exclusivo que ofrezca una experiencia limpia sin mensajes inesperados.
- El usuario hace clic en un botón de Acceder.
- Tu sitio llama a
navigator.credentials.get()conuiMode: "immediate". - El navegador verifica las credenciales locales.
- Si el navegador encuentra credenciales, muestra un diálogo de acceso inmediato para que el usuario seleccione una cuenta.
- Si el navegador no encuentra credenciales o el usuario descarta el diálogo de acceso inmediato, arroja un
NotAllowedError. - Si se genera una
NotAllowedError, tu sitio continuará con su página de acceso estándar.
Accede a tu cuenta antes de confirmar la compra
Ofrece credenciales de forma proactiva antes de que un usuario realice una acción que se beneficiaría de la autenticación, como iniciar un proceso de confirmación de compra en una tienda en línea.
En el comercio electrónico, los usuarios invitados suelen elegir entre acceder a una cuenta existente o confirmar la compra como invitados. Proporcionar un diálogo de inicio de sesión inmediato puede optimizar el proceso de confirmación de la compra para los clientes recurrentes.
- El usuario inicia una acción, como hacer clic en un botón de Confirmar compra durante un flujo de compra.
- Tu sitio llama a
navigator.credentials.get()conuiMode: "immediate". - Si existen credenciales, el usuario selecciona una para completar el acceso.
- Si no existen credenciales, el navegador arroja un error y no muestra ningún diálogo de acceso inmediato. La experiencia del usuario no cambia, y puedes llevarlo a la pantalla de confirmación de compra existente, que podría proporcionar otras opciones de acceso o un formulario de confirmación de compra como invitado.
Revisa las medidas de privacidad y seguridad
El navegador implementa medidas críticas para proteger la privacidad del usuario:
- Requisito de gesto del usuario: Debes iniciar la llamada a la API con un gesto del usuario, como un clic, para evitar la detección silenciosa. La llamada no consume la activación.
- Restricciones del modo de navegación incógnito: Las solicitudes en sesiones privadas o de incógnito siempre arrojan un
NotAllowedError. - Sin listas de entidades permitidas: Las solicitudes con una lista de
allowCredentialsno vacía arrojan unNotAllowedErrorpara evitar el seguimiento entre sesiones. - No se puede cancelar de forma programática: No puedes usar el parámetro
signalpara descartar de forma programática el diálogo de acceso inmediato.