Session 在Electron中,默认会话是持久的吗?
我正在使用Electron(v1.2.7),我需要会话cookie在应用程序重启之间保持(用于身份验证) 可能吗?我知道在Chrome中,当你设置“继续你离开的地方”时,会话会被保留,但不确定在Electron中是否同样有效 作为一种解决方法,我尝试将会话cookie也存储为非会话cookie,但由于出现一般性错误而失败Session 在Electron中,默认会话是持久的吗?,session,cookies,electron,Session,Cookies,Electron,我正在使用Electron(v1.2.7),我需要会话cookie在应用程序重启之间保持(用于身份验证) 可能吗?我知道在Chrome中,当你设置“继续你离开的地方”时,会话会被保留,但不确定在Electron中是否同样有效 作为一种解决方法,我尝试将会话cookie也存储为非会话cookie,但由于出现一般性错误而失败 澄清:我没有设置会话cookie,它们是在身份验证期间由其他网页设置的。默认会话是持久的,但是如果使用session.defaultSession.cookies.set()设
澄清:我没有设置会话cookie,它们是在身份验证期间由其他网页设置的。默认会话是持久的,但是如果使用
session.defaultSession.cookies.set()设置cookie
您必须设置过期日期才能持久化cookie。您可以通过设置会话和过期日期来持久化cookie
这个例子是在Angularjs上制作的
var session = require('electron').remote.session;
var ses = session.fromPartition('persist:name');
this.put = function (data, name) {
var expiration = new Date();
var hour = expiration.getHours();
hour = hour + 6;
expiration.setHours(hour);
ses.cookies.set({
url: BaseURL,
name: name,
value: data,
session: true,
expirationDate: expiration.getTime()
}, function (error) {
/*console.log(error);*/
});
};
PD:我遇到的一个问题是,如果我不坚持,在fews重新加载我的饼干后,我的饼干就会丢失。因此,在本例中,我会将它们保留6小时如果您正在加载外部网页,您应该使用电子来禁用节点集成以及其他安全原因。使用webview将使您能够轻松访问可设置为持久化的(例如:persist:mypage
)。如果需要,您还可以在电子窗口上设置分区属性。我们的代码不是设置cookie的代码,它们是由访问的其他网页设置的(在身份验证期间和iframe上,如果有关系)。@AmitApple您如何关闭应用程序,使用app.quit()
或process.exit()
?这不重要,我始终希望保留会话。@a请注意,这很重要,因为如果应用程序未完全关闭,则会话数据可能无法持久保存到磁盘。我们使用app.quit()
,但由于在此之前已设置了会话cookie,所以这不重要。如何从主渲染器访问所有会话??谢谢