CookieStoreManager

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

注意:此功能在 Service Workers 中可用。

CookieStoreManager 接口是 Cookie Store API 的一部分,它允许 Service Worker 订阅 cookie 更改事件。在特定的 Service Worker 注册对象上调用 subscribe() 方法即可接收更改事件。

一个 CookieStoreManager 对象关联着一个 ServiceWorkerRegistration 对象。每个 Service Worker 注册对象都有一个 cookie 更改订阅列表,该列表包含一个名称和一个 URL。此接口中的方法允许 Service Worker 向此列表添加和删除订阅,以及获取所有订阅的列表。

要获取 CookieStoreManager 对象,请调用 ServiceWorkerRegistration.cookies

实例方法

CookieStoreManager.getSubscriptions()

返回一个 Promise,该 Promise 解析后会得到此 Service Worker 注册的 cookie 更改订阅列表。

CookieStoreManager.subscribe()

订阅 cookie 的更改。它返回一个 Promise,该 Promise 在订阅成功时解析。

CookieStoreManager.unsubscribe()

取消注册的 Service Worker 对 cookie 更改的订阅。它返回一个 Promise,该 Promise 在操作成功时解析。

示例

在此示例中,由 registration 代表的 ServiceWorkerRegistration 对象正在订阅作用域为 "/path1" 的名为 "cookie1" 的 cookie 的更改事件。

js
const subscriptions = [{ name: "cookie1", url: `/path1` }];
await registration.cookies.subscribe(subscriptions);

如果 ServiceWorkerRegistration 对象已经订阅了任何 cookie,那么 getSubscriptions() 将返回一个 cookie 列表,这些 cookie 以与原始订阅相同的格式表示。

js
const subscriptions = await self.registration.cookies.getSubscriptions();

规范

规范
Cookie Store API
# cookiestoremanager

浏览器兼容性