PushSubscription: getKey()-Methode

Baseline 2023
Newly available

Since March 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

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

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die getKey()-Methode der PushSubscription-Schnittstelle gibt einen ArrayBuffer zurück, der einen öffentlichen Schlüssel des Clients repräsentiert. Dieser kann dann an einen Server gesendet und zur Verschlüsselung von Push-Nachrichtendaten verwendet werden.

Syntax

js
getKey(name)

Parameter

name

Ein String, der die Verschlüsselungsmethode repräsentiert, die zur Erzeugung eines Client-Schlüssels verwendet wird. Der Wert kann sein:

p256dh

Ein Elliptic curve Diffie–Hellman-Öffentlicher Schlüssel auf der P-256-Kurve (das heißt der NIST secp256r1 elliptischen Kurve). Der resultierende Schlüssel ist ein unkomprimierter Punkt im ANSI X9.62-Format.

auth

Ein Authentifizierungsgeheimnis, wie in Message Encryption for Web Push beschrieben.

Rückgabewert

Ein ArrayBuffer oder null, wenn kein öffentlicher Schlüssel gefunden werden kann.

Beispiele

js
reg.pushManager.getSubscription().then((subscription) => {
  // Enable any UI which subscribes / unsubscribes from
  // push messages.

  subBtn.disabled = false;

  if (!subscription) {
    console.log("Not yet subscribed to Push");
    // We aren't subscribed to push, so set UI
    // to allow the user to enable push
    return;
  }

  // Set your UI to show they have subscribed for
  // push messages
  subBtn.textContent = "Unsubscribe from Push Messaging";
  isPushEnabled = true;

  // initialize status, which includes setting UI elements for subscribed status
  // and updating Subscribers list via push
  const endpoint = subscription.endpoint;
  const key = subscription.getKey("p256dh");
  const auth = subscription.getKey("auth");

  // …
});

Spezifikationen

Specification
Push API
# dom-pushsubscription-getkey

Browser-Kompatibilität