我正在考虑在我正在构建的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/
答案 0 :(得分:1)
另一种选择可能是electron-json-storage。使用此插件,您可以在整个用户体验中将JSON写入系统文件,然后在应用程序加载时调用该文件以替换用户" state"。