Cookie 同意管理
配置 Cookie 提示方式和第三方脚本加载规则,并让隐私说明与网站的实际行为保持一致。
Saavo 内置了 Cookie 同意横幅、分类偏好和 Cookie 政策页。当前功能主要用于控制第三方统计与广告脚本是否加载;它不会自动接管网站使用的所有 Cookie 和本地存储。
相关配置位于 config/cookie-consent.ts。项目默认采用 silent 模式,并且所有第三方服务的必填配置均为空,因此初始状态下不会显示横幅,也不会加载 Google Analytics、AdSense 等第三方脚本。

工作模式
| 模式 | 是否显示横幅 | 第三方脚本的处理方式 |
|---|---|---|
silent | 否 | 立即加载已启用且配置完整的第三方脚本 |
prompt | 是 | 用户同意相应分类后才加载脚本 |
disabled | 否 | 不显示同意界面,也不通过该功能加载第三方脚本 |
silent 只是“不询问直接加载”,并不表示网站已经取得用户同意。面向需要事先同意的地区时,应根据实际业务和适用法规改用 prompt,并请专业人员审核隐私与 Cookie 说明。
第一方访问统计不受此开关控制
项目自带的 /js/analytics.js 和 /api/analytics/collect 属于第一方访问统计,不由这里的第三方统计分类控制。即使用户拒绝第三方统计脚本,只要第一方统计仍处于开启状态,采集请求仍可能发生。详见访问统计。
配置 Cookie 分类和第三方服务
默认配置包含以下分类:
necessary:登录、安全、结账等必要 Cookie,始终启用且不可关闭;functionality:功能偏好,例如主题设置;analytics:Google Analytics、Clarity、Umami、Plausible、PostHog 等第三方统计服务;marketing:Google AdSense 等营销服务。
第三方服务必须同时满足两个条件才会实际加载:
- 在
config/cookie-consent.ts中启用对应项目; - 在
config/analytics.ts或config/ads.ts中填写完整配置。
例如,只把 Google Analytics 项设为 enabled: true,但没有填写 Measurement ID,页面仍不会加载其脚本。在 prompt 模式下,没有可用脚本的第三方项目也不会作为可执行选项参与脚本加载。
不要绕过这套配置在组件中直接插入第三方 <script>。否则脚本不会受用户选择控制,横幅中的说明也会与实际行为不一致。
同意记录与版本号
用户的选择保存在 cookie_consent Cookie 中,有效期为 365 天。记录包含:
- 政策版本
policyVersion; - 配置版本
configVersion; - 各分类和项目的选择;
- 同意状态以及创建、更新和过期时间。
修改政策正文时递增 policyVersion;调整分类、项目或默认值时递增 configVersion。任一版本与旧记录不一致,旧记录都会失效。prompt 模式下,用户需要重新选择。
mode: 'prompt',
policyVersion: '1.1.0',
configVersion: '1.1.0',首次作出选择时,页面会按结果加载允许的脚本。用户之后修改已有偏好时,页面会刷新,以便重新应用脚本加载状态。只有 prompt 模式会在页脚提供重新打开 Cookie 设置的入口。

目前不会管理哪些功能偏好
functionality.theme 会显示并记录主题偏好,但目前还没有接入主题存储逻辑。网站主题仍由 localStorage 中的 saas-theme 独立保存;关闭该偏好不会停止主题的读取或写入。
如果产品要求此选项真正控制主题持久化,需要修改主题初始化与切换逻辑。只调整同意配置或文案,不能改变实际存储行为。
同样,新增任何 Cookie、本地存储项或第三方脚本时,都应先确认它由哪段代码写入,再决定是否以及如何纳入同意管理。
更新 Cookie 政策
/cookies 是面向用户的 Cookie 政策页。模板提供的是示例内容,正式上线前必须按实际站点重写,并与 config/cookie-consent.ts 保持一致,至少说明:
- 网站实际使用的必要 Cookie 和用途;
- 已启用的第三方服务、采集目的和保存期限;
- 第一方访问统计的采集范围;
- 用户如何修改或撤回选择;
- 政策生效日期和联系方式。
不要只改横幅而保留示例政策,也不要在政策中列出网站实际上没有启用的服务。
上线检查
- 已根据目标市场选择
silent、prompt或disabled。 -
/cookies与网站真实使用的 Cookie、存储项和第三方脚本一致。 - 未使用的统计和广告服务配置保持为空。
-
prompt模式下,接受、拒绝和自定义三种操作均已测试。 - 拒绝后,受控的第三方统计和广告脚本不会加载。
- 已单独评估第一方访问统计是否需要告知或同意。
- 政策或分类变更后已递增相应版本。
- 文档中的功能偏好确实接入了对应功能,没有把“记录偏好”写成“阻止存储”。
常见问题
接下来
- 配置第一方和第三方统计:访问统计
- 查看真实产品如何处理品牌和隐私内容:WebpageToPDF 实战教程
- 核对登录和支付流程:认证与账号、计费与套餐