我目前正在使用 Workbox 来使用 Service Worker 完成一些缓存。现在,当用户注销时,我面临着从缓存中删除更多个性化数据的问题。我们已经通过在注销操作时向 SW 发布消息来实现这一点。但是,我在处理用户删除 cookie 的边缘情况时遇到了麻烦。由于我们如何进行身份验证,用户在 cookie 删除时会被注销。但是我们无法检测到此删除,因此无法清除缓存。
关于如何处理边缘情况或更好地处理 SW/Workbox 中经过身份验证的资产的任何建议?谢谢!
下面是我们当前流程的一个简短示例。
* sw.js */
self.addEventListener("message", msg => {
if (msg.type) {
switch (msg.event) {
case "LOGOUT":
// delete caches which contain personalized data
Promise.all(
exprPlugins.map(plugin =>
plugin.deleteCacheAndMetadata(),
),
)
// ... other code
break;
}
}
});