cookies - Electron 5 中的持久性 cookie
问题描述
我正在 Electron 中加载网页 URL,除非应用程序关闭时,再次打开后 cookie 为空。我无法更新,因为插件支持已被删除,所以我被困在 5.x 版本。我尝试了一些不同的事情,但没有运气。在 Electron 5 中获取持久 cookie 的最佳方法是什么?
以下是我尝试过的解决方法。但是,它没有用。
const {electron, app, BrowserWindow} = require('electron');
const path = require('path')
const fs = require('fs');
const dataPath = app.getPath('userData')
const filePath = path.join(dataPath, 'config');
mainWindow = new BrowserWindow({
webPreferences: {
plugins: true,
nodeIntegration: false
}
});
try {
console.log(fs.readFileSync(filePath, 'utf8'))
mainWindow.webContents.executeJavaScript(
"document.cookie = '" + fs.readFileSync(filePath, 'utf8') + "';"
)
} catch (e) {
console.log(e)
}
mainWindow.loadURL('https://www.example.com/')
mainWindow.on('close', function () {
mainWindow.webContents
.executeJavaScript('document.cookie;')
.then(cookies => {
console.log(cookies)
fs.writeFileSync(filePath, cookies)
})
})
解决方案
尝试参考这些文档:https ://www.electronjs.org/docs/api/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: 'http://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: 'http://www.github.com', name: 'dummy_name', value: 'dummy' }
session.defaultSession.cookies.set(cookie)
.then(() => {
// success
}, (error) => {
console.error(error)
})
推荐阅读
- python - 美丽的汤 find_all() 方法抓取的标签比过滤器指定的要多
- android - 如果主活动中有 Fragment,则在哪里更新 UI 元素
- javascript - 使用 Google Apps 脚本填写保存在我的 Google Drive 上的 PDF 表单
- laravel - Laravel Nova 自定义字段获取模型值
- javascript - 单击并使用 LocalStorage 保存后如何隐藏横幅?
- python - 如何确保我的软件不易被盗版
- python - 带有“__getitem__”的类没有“get”方法
- python - 如何从恢复的张量流图中获取优化器对象?
- java - 用户能够访问管理员角色页面 - Spring Security
- html - 带有 CSS ::before 的自定义复选框 - 在 Firefox/Edge 中不起作用