会话cookie无法在Electron

时间:2016-07-08 07:16:59

标签: javascript node.js session cookies electron

我正在考虑在我正在构建的Electron [0]应用程序中实现一个登录系统,但却遇到了处理会话的问题。基本上我想存储用户会话,以便在应用程序重启之间保持不变(如果启用了“记住我”)。

我必须使用现有的后端,它使用cookie身份验证,我无法更改任何内容。

从Session对象的电子文档[1]我收集到我应该使用像f.e.这样的分区。 persist:someName以获得持久存储,但在应用程序重新启动之间不会持续存在。

我目前设置cookie的方式如下:

// main-process/login.js

const session = require('electron').session;

const currentSession = session.fromPartition('persist:someName').cookies;

currentSession.set({
    name: 'myCookie',
    url: 'https://www.example.com',
    value: 'loggedin=1',
    expirationDate: 1531036000
}, function(error) {
    console.log('Cookie set');
    if (error) {
        console.dir(error);
    }
});

运行之后,我看到了Cookie set输出,但是在重新启动应用程序并运行以下代码时:

// main.js

const session = require('electron').session;

const currentSession = session.fromPartition('persist:someName').cookies;

currentSession.get({}, function(error, cookies) {
    console.dir(cookies);
    if (error) {
        console.dir(error);
    }
});

返回的输出为[]

关于我做错了什么或需要做些什么的任何指示都将受到高度赞赏!

[0] http://electron.atom.io
[1] http://electron.atom.io/docs/api/session/

1 个答案:

答案 0 :(得分:1)

另一种选择可能是electron-json-storage。使用此插件,您可以在整个用户体验中将JSON写入系统文件,然后在应用程序加载时调用该文件以替换用户" state"。