Javascript 会话cookie在电子计算机中不工作
我正在考虑在我正在构建的Electron[0]应用程序中实现一个登录系统,但在处理会话时遇到了困难。基本上,我希望存储用户会话,以便在应用程序重新启动之间保持它(如果启用了“记住我”) 我必须使用一个现有的后端,该后端与cookie身份验证一起工作,我无法在那里更改任何内容 从会话对象[1]的Electron文档中,我发现我应该使用f.e.Javascript 会话cookie在电子计算机中不工作,javascript,node.js,session,cookies,electron,Javascript,Node.js,Session,Cookies,Electron,我正在考虑在我正在构建的Electron[0]应用程序中实现一个登录系统,但在处理会话时遇到了困难。基本上,我希望存储用户会话,以便在应用程序重新启动之间保持它(如果启用了“记住我”) 我必须使用一个现有的后端,该后端与cookie身份验证一起工作,我无法在那里更改任何内容 从会话对象[1]的Electron文档中,我发现我应该使用f.e.persist:someName这样的分区来拥有一个持久性存储,但这并不像看起来那样在应用程序重启之间持久化 我当前设置cookie的方式如下: // mai
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集
输出,但在重新启动应用程序并运行以下代码时:
// 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][1] 另一种选择可能是看一看。使用此插件,您可以在整个用户体验期间将JSON写入系统文件,然后在应用程序加载时调用该文件以替换用户“状态”。进一步研究该问题后,这可能是1.2.2之后的Electron版本的问题,正如GitHub上的此线程所指出的:1.:检查您的导入,我想象“需要(‘电子’]”可能会导致一些问题。2:您可以改为查看localStorage API。@JensHabegger是的,这里的脚本中有一个输入错误,对不起!同时,事实证明这是Electron中的一个问题,我正在等待一个新版本,该版本的修复程序可用。根据我的经验,会话API充满了无法解释的错误havior.在我的应用程序中,我在创建窗口之前获取/设置cookie,为了让cookie真正得到设置,我必须首先设置它们,然后再次获取它们(比如
session.cookies.get({},()=>{})
)。这没有意义,但它始终有效。您是否通过Chrome开发工具验证了它不在窗口中?(查看“应用程序”或“资源”选项卡下的内容)。