会话cookie在Electron中不起作用
我正在考虑在我正在构build的Electron [0]应用程序中实现一个login系统,但是在处理会话的过程中遇到了困难。 基本上我想存储用户会话,以便在应用程序重新启动之间持续存在(如果启用了“记住我”function)。
我必须利用现有的后端与cookie身份validation,我不能改变任何东西。
从Session对象的Electron文档[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/
另一种方法可能是看看electron-json-storage 。 使用这个插件,您可以在整个用户体验中将JSON写入系统文件,然后在应用程序加载时调用该文件来replace用户“状态”。