cookies.Cookie

cookies API 的 Cookie 类型表示有关 HTTP cookie 的信息。

类型

此类型的值是对象,可以包含以下属性:

domain

表示 cookie 所属域的 string(例如“www.google.com”、“example.com”)。

expirationDate 可选

表示 cookie 到期日期的 number,以 UNIX 纪元以来的秒数表示。会话 cookie 不提供此属性。

firstPartyDomain

表示与 cookie 关联的第一方域的 string。如果在第一方隔离关闭时设置 cookie,此属性将为空字符串。参见第一方隔离

hostOnly

一个 boolean,如果 cookie 仅适用于主机(即请求的主机必须与 cookie 的域完全匹配),则为 true,否则为 false

httpOnly

一个 boolean,如果 cookie 标记为 HttpOnly(即客户端脚本无法访问 cookie),则为 true,否则为 false

name

表示 cookie 名称的 string

partitionKey 可选

一个 object,表示包含 cookie 的存储分区的描述。如果 cookie 不在分区存储中,则此对象省略(空值)。此对象包含以下属性:

topLevelSite

如果 cookie 存储在按顶级站点分区的存储中,则表示 cookie 存储分区的第一方 URL 的 string

path

表示 cookie 路径的 string

secure

一个 boolean,如果 cookie 标记为安全(即其作用域仅限于安全通道,通常是 HTTPS)则为 true,否则为 false

session

一个 boolean,如果 cookie 是会话 cookie,则为 true;如果是具有到期日期的持久 cookie,则为 false

sameSite

一个 cookies.SameSiteStatus 值,指示 cookie 的同站(SameSite)状态。

storeId

表示包含此 cookie 的 cookie 存储的 ID 的 string,由 cookies.getAllCookieStores() 提供。

value

表示 cookie 值的 string

浏览器兼容性

BCD tables only load in the browser

示例

cookies API 中的大多数方法涉及使用 Cookie 对象作为输入参数或作为返回值的一部分。例如,调用 cookies.getAll() 会返回一个 Cookie 对象数组。

在下面的示例中,我们请求获取所有的 cookie,然后输出每个 Cookie 对象的一些值:

js
function logCookies(cookies) {
  for (cookie of cookies) {
    console.log(`Domain: ${cookie.domain}`);
    console.log(`Name: ${cookie.name}`);
    console.log(`Value: ${cookie.value}`);
    console.log(`Persistent: ${!cookie.session}`);
  }
}

let gettingAll = browser.cookies.getAll({});
gettingAll.then(logCookies);

备注:此 API 基于 Chromium 的 chrome.cookies API。本文档源自 Chromium 代码中的 cookies.json