类: Cookies
类:Cookies
查询和修改会话的 cookie。
进程:主进程
此类不是从 'electron'
模块导出的。它仅作为 Electron API 中其他方法的返回值可用。
通过使用 Session
的 cookies
属性来访问 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
事件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
对象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[]>
- 一个 Promise,解析为 cookie 对象数组。
发送一个请求以获取与 filter
匹配的所有 cookie,并使用响应解析 Promise。
cookies.set(details)
details
对象url
string - 将 cookie 与之关联的 URL。如果 URL 无效,则 Promise 将被拒绝。name
string (可选) - cookie 的名称。如果省略,则默认为空。value
string (可选) - cookie 的值。如果省略,则默认为空。domain
string (可选) - cookie 的域;这将使用前导点进行规范化,以便它对子域也有效。如果省略,则默认为空。path
string (可选) - cookie 的路径。如果省略,则默认为空。secure
boolean (可选) - 是否应将 cookie 标记为 Secure。默认值为 false,除非使用了 Same Site=None 属性。httpOnly
boolean (可选) - 是否应将 cookie 标记为仅 HTTP。默认值为 false。expirationDate
Double (可选) - cookie 的过期日期,为自 UNIX 纪元以来的秒数。如果省略,则 cookie 将变为会话 cookie,并且不会在会话之间保留。sameSite
string (可选) - 应用于此 cookie 的 Same Site 策略。可以是unspecified
、no_restriction
、lax
或strict
。默认为lax
。
返回 Promise<void>
- 一个 Promise,当 cookie 设置后解析
使用 details
设置 cookie。
cookies.remove(url, name)
url
string - 与 cookie 关联的 URL。name
string - 要删除的 cookie 的名称。
返回 Promise<void>
- 一个 Promise,当 cookie 被删除后解析
删除与 url
和 name
匹配的 cookie
cookies.flushStore()
返回 Promise<void>
- 一个 Promise,当 cookie 存储刷新后解析
将所有未写入的 cookie 数据写入磁盘
任何方法写入的 cookie 都不会立即写入磁盘,而是每 30 秒或 512 次操作写入一次
调用此方法可以导致 cookie 立即写入磁盘。