跳到主要内容

类: Cookies

类: Cookies

查询和修改会话的 cookies。

进程: 主进程
此类未从 'electron' 模块导出。 它仅可作为 Electron API 中其他方法的返回值使用。

Cookies 类的实例通过使用 Sessioncookies 属性访问。

例如

const { session } = require('electron')

// Query all cookies.
session.defaultSession.cookies.get({})
.then((cookies) => {
console.log(cookies)
}).catch((error) => {
console.log(error)
})

// Query all cookies associated with a specific url.
session.defaultSession.cookies.get({ url: 'https://www.github.com' })
.then((cookies) => {
console.log(cookies)
}).catch((error) => {
console.log(error)
})

// Set a cookie with the given cookie data;
// may overwrite equivalent cookies if they exist.
const cookie = { url: 'https://www.github.com', name: 'dummy_name', value: 'dummy' }
session.defaultSession.cookies.set(cookie)
.then(() => {
// success
}, (error) => {
console.error(error)
})

实例事件

以下事件在 Cookies 的实例上可用

事件: 'changed'

返回

  • event 事件
  • cookie Cookie - 已更改的 cookie。
  • cause string - 更改的原因,具有以下值之一
    • explicit - Cookie 由使用者的操作直接更改。
    • overwrite - Cookie 由于覆盖它的插入操作而被自动删除。
    • expired - Cookie 在过期时被自动删除。
    • evicted - Cookie 在垃圾回收期间被自动删除。
    • expired-overwrite - Cookie 被已过期的到期日期覆盖。
  • removed boolean - 如果 cookie 已被删除,则为 true,否则为 false

当 cookie 因添加、编辑、删除或过期而更改时发出。

实例方法

以下方法在 Cookies 的实例上可用

cookies.get(filter)

  • filter Object
    • url string (可选) - 检索与 url 关联的 cookie。 空表示检索所有 URL 的 cookie。
    • name string (可选) - 按名称筛选 cookie。
    • domain string (可选) - 检索其域与 domains 匹配或为 domains 子域的 cookie。
    • path string (可选) - 检索其路径与 path 匹配的 cookie。
    • secure boolean (可选) - 按其 Secure 属性筛选 cookie。
    • session boolean (可选) - 筛选出会话 cookie 或持久 cookie。
    • httpOnly boolean (可选) - 按 httpOnly 筛选 cookie。

返回 Promise<Cookie[]> - 一个 promise,它解析为一个 cookie 对象数组。

发送请求以获取与 filter 匹配的所有 cookie,并使用响应解析 promise。

cookies.set(details)

  • details Object
    • url string - 将 cookie 与之关联的 URL。 如果 URL 无效,promise 将被拒绝。
    • name string (可选) - Cookie 的名称。 如果省略,则默认为空。
    • value string (可选) - Cookie 的值。 如果省略,则默认为空。
    • domain string (可选) - Cookie 的域;这将使用前导点进行规范化,以便它也对子域有效。 如果省略,则默认为空。
    • path string (可选) - Cookie 的路径。 如果省略,则默认为空。
    • secure boolean (可选) - 是否应将 cookie 标记为 Secure。 除非使用 Same Site=None 属性,否则默认为 false。
    • httpOnly boolean (可选) - 是否应将 cookie 标记为仅 HTTP。 默认为 false。
    • expirationDate Double (可选) - Cookie 的过期日期,以自 UNIX 纪元以来的秒数表示。 如果省略,则 cookie 变为会话 cookie,并且不会在会话之间保留。
    • sameSite string (可选) - 应用于此 cookie 的 Same Site 策略。 可以是 unspecifiedno_restrictionlaxstrict。 默认为 lax

返回 Promise<void> - 一个 promise,当 cookie 设置好时解析

使用 details 设置 cookie。

cookies.remove(url, name)

  • url string - 与 cookie 关联的 URL。
  • name string - 要删除的 cookie 的名称。

返回 Promise<void> - 一个 promise,当 cookie 被移除时解析

移除与 urlname 匹配的 cookie

cookies.flushStore()

返回 Promise<void> - 一个 promise,当 cookie 存储已被刷新时解析

将任何未写入的 cookie 数据写入磁盘

任何方法写入的 Cookie 不会立即写入磁盘,而是每 30 秒或 512 次操作写入一次

调用此方法可能会导致 cookie 立即写入磁盘。