Check vapidKey

This commit is contained in:
Lim Chee Aun 2024-06-05 18:53:59 +08:00
parent 1c01e1b0f4
commit 04e1d60e54

View file

@ -147,24 +147,28 @@ export async function initSubscription() {
if (subscription && !backendSubscription) { if (subscription && !backendSubscription) {
// check if account's vapidKey is same as subscription's applicationServerKey // check if account's vapidKey is same as subscription's applicationServerKey
const { vapidKey } = getCurrentAccount(); const { vapidKey } = getCurrentAccount();
const { applicationServerKey } = subscription.options; if (vapidKey) {
const vapidKeyStr = urlBase64ToUint8Array(vapidKey).toString(); const { applicationServerKey } = subscription.options;
const applicationServerKeyStr = new Uint8Array( const vapidKeyStr = urlBase64ToUint8Array(vapidKey).toString();
applicationServerKey, const applicationServerKeyStr = new Uint8Array(
).toString(); applicationServerKey,
const sameKey = vapidKeyStr === applicationServerKeyStr; ).toString();
if (sameKey) { const sameKey = vapidKeyStr === applicationServerKeyStr;
// Subscription didn't change if (sameKey) {
// Subscription didn't change
} else {
// Subscription changed
console.error('🔔 Subscription changed', {
vapidKeyStr,
applicationServerKeyStr,
sameKey,
});
// Unsubscribe since backend doesn't have a subscription
await subscription.unsubscribe();
throw new Error('Subscription key and vapid key changed');
}
} else { } else {
// Subscription changed console.warn('No vapidKey found');
console.error('🔔 Subscription changed', {
vapidKeyStr,
applicationServerKeyStr,
sameKey,
});
// Unsubscribe since backend doesn't have a subscription
await subscription.unsubscribe();
throw new Error('Subscription key and vapid key changed');
} }
} }