使用 pushsubscriptionchange 时如何获取旧的订阅数据
How to get old subscription data when using pushsubscriptionchange
我正在将订阅端点、auth 和 p256dh 密钥保存在数据库中,我想在我的服务工作者上实施 pushsubscriptionchange
事件以重新订阅和更新我在数据库中的旧订阅到期时,但我找不到获取旧订阅数据的方法。我正在使用这个简单的代码来测试它。
self.addEventListener('pushsubscriptionchange', function(event) {
console.log('subscription expired');
event.waitUntil(
self.registration.pushManager.subscribe({ userVisibleOnly: true })
.then(function(subscription) {
console.log('subscribed again');
// send subscription data to server to update database
})
);
});
为了在 firefox 中触发事件,我删除了权限并再次授予它们,事件触发正常,但我找不到任何可以让我知道旧订阅数据的信息,所以我可以 delete/update在数据库上,所以我最终会得到过期的订阅和新的订阅。
如何获取旧的订阅数据?
忘了补充,我没有其他方法可以识别用户,他们没有注册,这不是应用程序,只是一个网站。
你不能。当前任何浏览器都在 pushsubscriptionchange
中传递参数。
有关详细信息,请参阅:How to handle WebPush API PushSubscriptionChange event in modern browsers
我正在将订阅端点、auth 和 p256dh 密钥保存在数据库中,我想在我的服务工作者上实施 pushsubscriptionchange
事件以重新订阅和更新我在数据库中的旧订阅到期时,但我找不到获取旧订阅数据的方法。我正在使用这个简单的代码来测试它。
self.addEventListener('pushsubscriptionchange', function(event) {
console.log('subscription expired');
event.waitUntil(
self.registration.pushManager.subscribe({ userVisibleOnly: true })
.then(function(subscription) {
console.log('subscribed again');
// send subscription data to server to update database
})
);
});
为了在 firefox 中触发事件,我删除了权限并再次授予它们,事件触发正常,但我找不到任何可以让我知道旧订阅数据的信息,所以我可以 delete/update在数据库上,所以我最终会得到过期的订阅和新的订阅。
如何获取旧的订阅数据?
忘了补充,我没有其他方法可以识别用户,他们没有注册,这不是应用程序,只是一个网站。
你不能。当前任何浏览器都在 pushsubscriptionchange
中传递参数。
有关详细信息,请参阅:How to handle WebPush API PushSubscriptionChange event in modern browsers