demo · v136
Auto Passkey upgrade
Complete a backend password sign-in, then trigger Conditional Create — the browser quietly creates a passkey under the same RP ID without a modal when the platform can upgrade the saved password.
Probing…
backend password sign-in
then: conditional passkey create
isConditionalMediationAvailable—
conditional create result—
credential id (b64u)—
If your password manager already has a matching password for example.com, Chrome 136 silently upgrades it to a passkey on the next conditional create. Otherwise the call rejects with no UI.
the code
// On successful backend password login:
const options = await fetch("/api/login", { method: "POST" }).then(r => r.json());
const cma = await PublicKeyCredential.isConditionalMediationAvailable();
if (cma) {
try {
await navigator.credentials.create({
publicKey: options.publicKey,
mediation: "conditional", // 136+: silent upgrade
});
} catch (e) {
// Silent failure is expected when no password to upgrade.
}
}
see also
- Auto Passkey upgrade — feature index
- ChromeStatus entry
- WebAuthn spec