Javascript Web 推送:我在哪里可以获得 "auth" 密钥?

Javascript Web Push: where can I get "auth" key?

我开始使用网络推送通知;我不知道在哪里可以找到 auth 键:

var pushSubscription = {
  endpoint: '< Push Subscription URL >',
  keys: {
    p256dh: '< User Public Encryption Key >',
    auth: '< ???? User Auth Secret ???? >'
  }
};

我可以从 ServiceWorker>registeration.pushManager.getSubscription() 得到 endpointp256dh 但不是 auth 键。

谢谢

您可以使用 getKey 方法同时获得 p256dhauth(参见 the specs or the example from the specs)。

getSubscription promise 返回的 PushSubscription 对象上调用 JSON.stringify 更简单。

使用 Typescript,PushSubscription 对象应该有一个名为 toJSON 的方法。就用那个吧。

const sub: PushSubscription = YOUR_RAW_PUSH_SUBSCRIPTION;
const pushSubscription = {
  endpoint: sub.endpoint,
  expirationTime: sub.expirationTime,
  keys: {
    p256dh: sub.toJSON().keys.p256dh,
    auth: sub.toJSON().keys.auth
  }
};