我正在考虑在构建的Electron[0]应用程序中实现登录系统,但在处理会话部分时遇到了问题。基本上,我想存储用户的会话,以便在应用程序重新启动时持续存在(如果启用“记住我”功能)。
我必须利用现有的后端,该后端使用cookie身份验证,我无法更改任何内容。
从Electron关于Session对象[1]的文档中,我了解到应该使用分区,例如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/
session.cookies.get({}, () => {})
)。虽然不合理,但它始终能够正常工作。 - ccnokes