cookies - 持久性 cookies 在Electron 5

标签 cookies electron

我正在Electron中加载网页URL,但当应用程序关闭时,cookies在再次打开后为空。我无法更新,因为已删除了插件支持,所以我停留在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)
  })

关于cookies - 持久性 cookies 在Electron 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65712071/

相关文章:

javascript - 难以通过 JavaScript 中的获取请求发送 cookie

php - 如何让我的用户保持登录状态 "forever"?

amazon-web-services - NoCredentialProviders : no valid providers in chain error in electron-updater with AWS S3

electron - 有没有办法创建连接超时来激活服务人员?

javascript - cookie 不保存在 IE 中

java - 如何在 Selenium 中测试 "Remember Me"复选框功能

php - Laravel 5.4 Cookie 值

node.js - 不能在 Electron 子进程分支中要求非 native 模块

Electron ES6 模块导入

electron - Electron nsis Installer x 64不包括node_modules?