Electron 缓存cookie
时间: 2024-05-07 20:11:02 浏览: 80
Electron 应用可以使用 Node.js 的 `session` 模块来缓存 cookie。以下是一个示例:
```javascript
const { app, session } = require('electron');
app.whenReady().then(() => {
const cookie = {
url: 'https://example.com',
name: 'my-cookie',
value: 'my-cookie-value',
expirationDate: Math.floor(Date.now() / 1000) + (60 * 60 * 24 * 7) // 1 week
};
// 设置 cookie
session.defaultSession.cookies.set(cookie)
.then(() => {
console.log('Cookie saved');
})
.catch((err) => {
console.error(err);
});
// 获取 cookie
session.defaultSession.cookies.get({})
.then((cookies) => {
console.log('Cookies:', cookies);
})
.catch((err) => {
console.error(err);
});
});
```
在上述示例中,我们首先使用 `session.defaultSession.cookies.set()` 方法来设置一个 cookie。该方法接受一个对象作为参数,该对象包含以下属性:
- `url`:cookie 的域名,必须包含协议(例如 `https://example.com`)
- `name`:cookie 的名称
- `value`:cookie 的值
- `expirationDate`:cookie 的过期时间,以秒为单位
然后,我们使用 `session.defaultSession.cookies.get()` 方法来获取所有 cookie。该方法接受一个对象作为参数,该对象可以包含以下属性:
- `url`:仅返回与指定 URL 匹配的 cookie
- `name`:仅返回指定名称的 cookie
如果未提供任何参数,则返回所有 cookie。返回的结果是一个 Promise,它解析为一个 cookie 数组。
请注意,如果要在 Electron 中缓存 cookie,则必须使用 `session` 模块而不是 `document.cookie`。这是因为 `document.cookie` 是在渲染进程中使用的,而 `session` 模块是在主进程中使用的。
阅读全文