ElectronJS:如何从渲染过程(浏览器窗口)中操纵cookie?

时间:2016-05-26 08:23:30

标签: javascript node.js cookies electron

我可以从主进程(app.js)创建持久性cookie

代码:

const session = require('electron').session;
    const ses = session.fromPartition('persist:name');

    debugger;
    // Query all cookies associated with a specific url.
    ses.cookies.get({}, (error, cookies) => {

        console.log(cookies); /// cookies values should be printed next time the applciation is launched.
    });

    // 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',
        expirationDate: 2093792393999
    };
    ses.cookies.set(cookie, (error) => {
        debugger;

        if (error)
            console.error(error);
    });

但是当我在浏览器窗口中执行相同操作时,不会创建Cookie并且session未定义。

请建议我应该如何在浏览器中保存持久数据。

1 个答案:

答案 0 :(得分:3)

可以通过IPC访问在渲染器进程中不能直接使用的内置模块(例如session),remote模块提供了一种简单的方法(但你应该是意识到它的局限性)。因此,只需将第一行更改为:

,您就可以在渲染器过程中使代码正常工作
const session = require('electron').remote.session;