跳转到主要内容

类:Cookies

Class: 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 实例可用的事件如下:

Event: 'changed'

返回

  • event 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 (optional) - 检索与 url 关联的 cookies。留空表示检索所有 URL 的 cookies。
    • name string (optional) - 按名称过滤 cookies。
    • domain string (optional) - 检索域匹配或为 domains 子域的 cookies。
    • path string (optional) - 检索路径匹配 path 的 cookies。
    • secure boolean (optional) - 按 Secure 属性过滤 cookies。
    • session boolean (optional) - 过滤掉会话 cookie 或持久 cookie。
    • httpOnly boolean (optional) - 按 httpOnly 过滤 cookies。

Returns Promise<Cookie[]> - 一个解析为 cookie 对象数组的 Promise。

发送请求以获取所有匹配 filter 的 cookies,并解析一个带有响应的 Promise。

cookies.set(details)

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

Returns Promise<void> - 一个在 cookie 设置完成后解析的 Promise。

使用 details 设置 cookie。

cookies.remove(url, name)

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

Returns Promise<void> - 一个在 cookie 删除完成后解析的 Promise。

删除与 urlname 匹配的 cookies。

cookies.flushStore()

Returns Promise<void> - 一个在 cookie 存储刷新完成后解析的 Promise。

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

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

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