我目前正在Firefox桌面瀏覽器上發送網絡通知。 不幸的是,刪除的令牌仍然可以通過Mozilla推送服務器推送。刪除的Firefox令牌仍然可以通過Mozilla推送服務器推送
要刪除由ServiceWorker生成的令牌(即訂閱端點),我只需清除緩存歷史記錄。然後,我發送一個通知給已刪除的端點:Mozilla返回一個201 Created
,告訴我們已經爲用戶創建了通知並準備發送。
但是,如果我使用Chrome瀏覽器重複相同步驟,則Google雲消息傳遞會告知我們該令牌未被註冊(參見GCM documentation>「未註冊的設備」)。
但是,我可以在Mozilla documentation中清楚地看到有這種情況的錯誤代碼:cf errno 103 - Expired URL endpoint
或errno106 - Invalid subscription
。
此外,我必須說,如果我阻止原始通知權限,以前授予,Mozilla因此返回一個errno106 - Invalid Subscription
錯誤。問題在於令牌已被刪除。
我不明白當你說「令牌已被刪除」時你的意思。令牌被「刪除」,意味着當用戶阻止原生通知權限時,該令牌不再有效。 – collimarco
@collimarco說白了:用戶有一個端點並接收Web推送。但是,如果他清除瀏覽器緩存,他將不會再收到網絡通知。所以這個端點變得毫無用處。我希望Mozilla告訴我,我不應該再發送到這個端點。 – Arturo
我同意你的意見。有些情況下,您不知道通知是否會發送。然而,這是關於Push API規範的一個問題,或者Mozilla如何處理這個問題:我不認爲StackOverflow中的某個人可以提供解決方案。 – collimarco