跳转至

Cookies

类:Cookies

查询并修改会话的 Cookie。

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

Cookies 类的实例通过 Session 的 cookies 属性访问。

例如:

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 Event
  • cookie Cookie - 被更改的 Cookie。
  • cause string - 更改原因,取以下值之一:
  • inserted - 该 Cookie 被插入。
  • inserted-no-change-overwrite - 新插入的 Cookie 覆盖了某个 Cookie,但未导致任何更改。例如,插入一个相同的 Cookie 会产生此原因。
  • inserted-no-value-change-overwrite - 新插入的 Cookie 覆盖了某个 Cookie,但未导致值更改,不过它对 Web 可观察(例如更新过期时间)。
  • 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 或为其子域名的 Cookie。
  • path string(可选) - 检索其路径匹配 path 的 Cookie。
  • secure boolean(可选) - 按 Secure 属性筛选 Cookie。
  • session boolean(可选) - 筛选会话 Cookie 或持久 Cookie。
  • httpOnly boolean(可选) - 按 httpOnly 筛选 Cookie。

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

发送请求以获取所有匹配 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 策略。可以是 unspecified、no_restriction、lax 或 strict。默认是 lax。

返回 Promise<void> - 一个在 Cookie 设置完成后解析的 Promise。

使用 details 设置 Cookie。

cookies.remove(url, name)

  • url string - 与 Cookie 关联的 URL。
  • name string - 要移除的 Cookie 的名称。

返回 Promise<void> - 一个在 Cookie 移除完成后解析的 Promise。

移除匹配 url 和 name 的 Cookie。

cookies.flushStore()

返回 Promise<void> - 一个在 Cookie 存储刷新完成后解析的 Promise。

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

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

调用此方法可立即将 Cookie 写入磁盘。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 el/electron