我正在使用Electron(v1.2.7),我需要会话cookie在应用重启之间持续存在(用于身份验证)。
有可能吗?我知道在Chrome中设置"继续你离开的地方",会话被保留但不确定它是否在Electron中工作相同。
作为一种解决方法,我尝试将会话cookie也存储为非会话cookie,但它因一般错误而失败。
澄清:我没有在身份验证期间设置由其他网页设置的会话Cookie。
答案 0 :(得分:3)
默认会话是持久性的,但如果您使用session.defaultSession.cookies.set()
设置Cookie,则必须设置过期日期,以便保留Cookie。
答案 1 :(得分:2)
您可以保留Cookie设置session
和expirationDate
这个例子是在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:我遇到的一个问题是,如果我没有坚持下去,在几次重新加载后我的cookie就会丢失。所以在这个例子中我会坚持6个小时
答案 2 :(得分:0)
如果您要加载外部网页,则应使用电子<webview>
tag来禁用节点集成以及其他安全原因。使用网页视图可以轻松访问Partition
attribute,可以将其设置为保留(例如:persist:mypage
)。如果需要,您还可以在Electron窗口上设置分区属性。