Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session 在Electron中,默认会话是持久的吗?_Session_Cookies_Electron - Fatal编程技术网

Session 在Electron中,默认会话是持久的吗?

Session 在Electron中,默认会话是持久的吗?,session,cookies,electron,Session,Cookies,Electron,我正在使用Electron(v1.2.7),我需要会话cookie在应用程序重启之间保持(用于身份验证) 可能吗?我知道在Chrome中,当你设置“继续你离开的地方”时,会话会被保留,但不确定在Electron中是否同样有效 作为一种解决方法,我尝试将会话cookie也存储为非会话cookie,但由于出现一般性错误而失败 澄清:我没有设置会话cookie,它们是在身份验证期间由其他网页设置的。默认会话是持久的,但是如果使用session.defaultSession.cookies.set()设

我正在使用Electron(v1.2.7),我需要会话cookie在应用程序重启之间保持(用于身份验证)

可能吗?我知道在Chrome中,当你设置“继续你离开的地方”时,会话会被保留,但不确定在Electron中是否同样有效

作为一种解决方法,我尝试将会话cookie也存储为非会话cookie,但由于出现一般性错误而失败


澄清:我没有设置会话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,所以这不重要。如何从主渲染器访问所有会话??谢谢