@canonical/cookie-policy

中文文档
4.0.0发布于 2026/11/04ISCES Module零依赖近 30 天下载 2.1万

显示 cookie 策略通知的脚本和样式表

中文使用文档
文档目录12 节
  1. 使用量
  2. 字体
  3. cookie 政策参数
  4. 取消饼干政策
  5. 访问已禁用跟踪器的页面
  6. 回呼钩
  7. 共享饼干服务
  8. 饼干组
  9. API - / cookies/ set- 首选项
  10. 捐款
  11. 制定饼干政策
  12. 抢劫

Canonical cookie政策组成部分

这个项目包含在网页上显示 cookie 策略通知的脚本和样式.

您可以在自己的网页上显示您选择的自定义 cookie 消息 .

使用量

这个工程可以通过一个 国家防范机制一揽子计划。 。 。 .

yarn add @canonical/cookie-policy

或者说...

npm install @canonical/cookie-policy

然后可以通过直接链接或通过ES6导入来安装库.

  1. 通过直接链接

要直接使用该图书馆,请在JS文件中添加一个链接,其中包含 IIFE (英语) 并呼唤自由:

<script src="[ INSERT YOUR LOCAL PATH ]/js/cookie-policy.js"></script>
<script>
  cpNs.cookiePolicy();
</script>
  1. 通过ES6导入
import { cookiePolicy } from '@canonical/cookie-policy';

字体

从4.0.0版本开始,饼干政策风格不再包括Ubuntu字体. 横幅用 "Ubuntu variable" 但期望页面能加载它.

  • 如果你的网站使用香草,你已经有了: 香草的基底样式包括字体.
  • 如果您的网站主机字体本身,没有改变: @font-face 规则.
  • 否则在您网站的CSS中添加这些规则:
@font-face {
  font-family: "Ubuntu variable";
  font-stretch: 100%;
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url("https://assets.ubuntu.com/v1/f1ea362b-Ubuntu%5Bwdth,wght%5D-latin-v0.896a.woff2") format("woff2");
}

@font-face {
  font-family: "Ubuntu variable";
  font-stretch: 100%;
  font-style: italic;
  font-weight: 100 800;
  font-display: swap;
  src: url("https://assets.ubuntu.com/v1/90b59210-Ubuntu-Italic%5Bwdth,wght%5D-latin-v0.896a.woff2") format("woff2");
}

这些都是相同的文件 香草装载。 没有他们,横幅就回到系统字体上.

cookie 政策参数

制定饼干政策的饼干政策功能需要两个可能的参数:

  1. callback (default = null) - 一个回调功能,在用户选择 cookie 偏好后调用
  2. initWithCookieService (default = false) - 一个bool,它决定了是否尝试和我们的共享cookie服务互通

如果您希望用户更改他们的偏好, 您可以添加 js-revoke-cookie-manager 分类到文件中包含的任何内容,以召回政策主管.

<button class="js-revoke-cookie-manager">Revoke cookie manager</button>

或者说

<a href="" class="js-revoke-cookie-manager">Revoke cookie manager</a>

访问已禁用跟踪器的页面

如果您添加查询 ?cp=hide 切换到任何 URL 的 cookie 策略将不会被执行 。 主要的用法是访问政策页面而不以模式来封锁内容.

回呼钩

在选择首选时,您可以使用回调设置 cookie 策略 .

function callbackFunction() {
  alert('Calling back');
}
cpNs.cookiePolicy(callbackFunction);

若为 initWithCookieService = true,这触发函数的调用 initSharedCookieService(),并意味着饼干政策将试图从我们的饼干数据库中取回用户饼干偏好. 这需要弗拉斯克扩展 cookie service (英语) 将插入项目.

若为 initWithCookieService = false 或没有通过,饼干政策 将只使用饼干设置在该特定网站.

共享 cookie 服务逻辑设置了以下附加 cookie :

  • _cookies_accepted: all|performance|functional|essential|unset:用户选择的首选.
  • _cookies_freshness_ts: <timestamp>:这是用来保证已经设定的饼干在1天前是新鲜的. 如果不是,它将为最新的饼干查询中央服务.
  • _cookies_set_offline: true | null: 如果在没有饼干时设置了饼干偏好, 则设置了此旗帜 。 下次服务上线时, cookie 首选项会被同步并去掉旗帜.

Flask 扩展设置了额外的饼干 cookie service (英语)数字 :

  • _cookies_auth_token: <encrypted_token>:用来识别不同站点之间的用户. 中央存储为 https://cookies.canonical.com (中文(简体) ),作为一个会话饼干.
  • _cookies_redirect_attempted: 1 | null: 这是一面旗子, 用来表示重新定向到中央服务, 用于认证和初始设置 _cookies_auth_token,已尝试(无论是否成功)。 会议于届会结束时结束.

通过 ES6 导入的完整示例

import { cookiePolicy } from '@canonical/cookie-policy';

cookiePolicy();

基本饼干总是允许的,除非用户在浏览器中关闭. 否则,将会有一系列价值 _cookies_accepted 饼干可以包含:

Cookie 值说明说明
全部所有饼干都被用户接受. 现有部件目前使用上一个数值是 true使用同样的饼干.
关键基本的饼干接受.用于隐藏通知而不是设置 cookie
业绩性能饼干接受.- 说吧
函数功能饼干被接受.- 说吧

API - / cookies/ set- 首选项

这个软件包将尝试 POST 用户 cookie 偏好到我们的共享 cookie 服务( cookies.canonical.com). 这是由一个 Python 软件包, cononical webteam.cookies service, 揭示一个内部端点"/ cookies/ set-preference", 尝试POST只能提供饼干 _cookies_service_up=1 已存在。 不使用上述 Python 软件包的应用程序不会试图 POST 用户偏好 .

捐款

如果您想帮助改进此工程, 这里列出一系列命令 帮你开始吧.

安装必要的依赖关系;

npm install

要将JS和CSS构建到构建文件夹中,运行:

npm run build

您可以通过运行查看动作中的构建文件 :

npm run serve

还有,访问http://0.0.0.0:8301/

抢劫

当开发此工程时, 您可以运行以下命令以监听 变动 src/js/*js 财务报告和审定财务报表 src/sass/*scss 文件夹并建入 /build 文件夹.

npm run watch

在提交拉拉请求之前,先检查一下电线 检查JS 和Sass 对于错误.

npm run test

代码许可LGPLv3 由Canonical Ltd.

和来自Canonical的..

版本与发布记录

@canonical/cookie-policy 共发布 38 个版本,首次发布于 2019/05/07;过去 12 个月发布了 14 个版本。

版本发布日期距今
4.0.0latest2026/11/045 天前
3.10.02026/03/078 个月前
3.9.02026/02/248 个月前
3.8.42025/12/1110 个月前
3.8.32025/12/0910 个月前
3.8.22025/12/0411 个月前

关于 @canonical/cookie-policy 的常见问题

@canonical/cookie-policy 是什么?

显示 cookie 策略通知的脚本和样式表

如何安装 @canonical/cookie-policy?

在项目目录运行 npm install @canonical/cookie-policy,或使用 pnpm add / yarn add / bun add。

@canonical/cookie-policy 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/canonical__cookie-policy 是否存在。

@canonical/cookie-policy 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@canonical/cookie-policy 可以商用吗?

@canonical/cookie-policy 使用 ISC 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@canonical/cookie-policy 的下载量有多少?

根据 npm 官方下载统计,@canonical/cookie-policy 在 2026/10/09 – 2026/11/07 这 30 天内被下载 21,126 次,日均约 704 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@canonical/cookie-policy 还在维护吗?

最新版本 4.0.0 发布于 2026/11/04(5 天前);至今共发布 38 个版本,其中过去 12 个月发布了 14 个;首次发布于 2019/05/07。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。