我们有个用户数据管理后台,现在要支持 GDPR 的“被遗忘权”,用户申请删除账号后,除了后端清数据,前端这边是不是也得做些处理?比如清除本地存储、取消订阅之类的。
我试过在注销时加这段清理逻辑:
localStorage.clear();
sessionStorage.clear();
// 还有 IndexedDB 和 Service Worker 缓存
但不确定是否足够,会不会漏掉什么?比如第三方 SDK(像 Google Analytics 或 Sentry)会不会还留着用户标识?有没有更系统的做法?
除了
localStorage.clear()和sessionStorage.clear(),别忘了检查Cookie。用document.cookie遍历删除所有cookie,注意domain和path。对于IndexedDB,标准写法是打开每个数据库然后清空:
第三方SDK确实容易被忽视。像Google Analytics这类的,最好在用户注销时调用它们的退出方法(如果有的话)。Sentry可以清除user属性:
Sentry.configureScope(scope => scope.setUser(null));别忘了Service Worker缓存。遍历所有缓存并删除:
最后建议记录下所有可能存储用户标识的地方,形成checklist。这活确实琐碎,但为了合规得做全。累是累点,总比违规强。
核心就三件事:清本地存储、清Cookies、断第三方SDK。代码这样写:
但必须说清楚:前端清理只是辅助动作,真正的“被遗忘权”必须后端先删完数据。前端清再多,服务器上数据还在的话第三方该收集还是收集。流程必须是:后端执行删除 → 返回成功 → 前端做清理 → 跳转登录页或首页。