PublicKeyCredential: isConditionalMediationAvailable() statische Methode

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Die isConditionalMediationAvailable() statische Methode der PublicKeyCredential-Schnittstelle gibt ein Promise zurück, das auf true aufgelöst wird, wenn bedingte Vermittlung verfügbar ist.

Wenn die bedingte Vermittlung verfügbar ist, werden alle entdeckten Anmeldedaten dem Benutzer in einem nicht-modalen Dialogfeld zusammen mit einem Hinweis auf den Ursprung, der die Anmeldedaten anfordert, präsentiert. Dies wird angefordert, indem mediation: 'conditional' in Ihrem get()-Aufruf enthalten ist. In der Praxis bedeutet dies das automatische Ausfüllen verfügbarer Anmeldedaten; Sie müssen autocomplete="webauthn" in Ihren Formularfeldern einschließen, damit die WebAuthn-Anmeldeoptionen angezeigt werden.

Ein bedingter get()-Aufruf zeigt nicht die Browser-Benutzeroberfläche und bleibt ausstehend, bis der Benutzer ein Konto aus den verfügbaren automatischen Ausfüllvorschlägen auswählt, um sich anzumelden:

  • Wenn der Benutzer eine Aktion außerhalb des Dialogs durchführt, schließt sich dieser, ohne das Promise aufzulösen oder abzulehnen, und ohne eine für den Benutzer sichtbare Fehlersituation zu verursachen.
  • Wenn der Benutzer ein Anmeldedatum auswählt, wird dieses dem Aufrufer zurückgegeben.

Das Flag zur Verhinderung des stillen Zugriffs (siehe CredentialsContainer.preventSilentAccess()) wird unabhängig von seinem tatsächlichen Wert als true behandelt: Das bedingte Verhalten beinhaltet immer eine Benutzervermittlung irgendeiner Art, wenn anwendbare Anmeldedaten entdeckt werden.

Hinweis: Wenn keine Anmeldedaten entdeckt werden, ist der nicht-modale Dialog nicht sichtbar, und der Benutzeragent kann den Benutzer auffordern, Maßnahmen zu ergreifen, die von der Art der Anmeldedaten abhängt (zum Beispiel ein Gerät einzustecken, das Anmeldedaten enthält).

Syntax

js
isConditionalMediationAvailable()

Parameter

Keine.

Rückgabewert

Ein Promise, das sich auf einen booleschen Wert auflöst, der anzeigt, ob die bedingte Vermittlung verfügbar ist oder nicht.

Beispiele

Bevor Sie einen bedingten WebAuthn-API-Aufruf durchführen, überprüfen Sie, ob:

  • Der Browser die Web Authentication API unterstützt.
  • Der Browser die bedingte WebAuthn-Benutzeroberfläche unterstützt.
js
// Availability of `window.PublicKeyCredential` means WebAuthn is usable.
if (
  window.PublicKeyCredential &&
  PublicKeyCredential.isConditionalMediationAvailable
) {
  // Check if conditional mediation is available.
  const isCMA = await PublicKeyCredential.isConditionalMediationAvailable();
  if (isCMA) {
    // Call WebAuthn authentication
    const publicKeyCredentialRequestOptions = {
      // Server generated challenge
      challenge: ****,
      // The same RP ID as used during registration
      rpId: "example.com",
    };

    const credential = await navigator.credentials.get({
      publicKey: publicKeyCredentialRequestOptions,
      signal: abortController.signal,
      // Specify 'conditional' to activate conditional UI
      mediation: "conditional",
    });
  }
}

Hinweis: Weitere Informationen zur Verwendung der bedingten Vermittlung finden Sie unter Mit einem Passkey über das automatische Ausfüllen von Formularen anmelden.

Spezifikationen

Specification
Web Authentication: An API for accessing Public Key Credentials - Level 3
# dom-publickeycredential-isconditionalmediationavailable

Browser-Kompatibilität

BCD tables only load in the browser