作为一个电子客户端,有没有办法可以在应用关闭后使会话保持不变?

时间:2016-11-22 18:56:00

标签: session cookies electron

我经常访问几个网站。事实上,我喜欢在我的机器上安装一个小型电子应用程序来检查更新(因为该网站不支持电子邮件更新或任何此类性质)。我的脚本基本上只是启动浏览器,检索站点的Web内容,将其记录到文件中,然后检查差异。然后通知我有差异,如果有的话。

但是,问题是,当给定的浏览器窗口打开时(即使我关闭了各个选项卡),我可以访问这些网站,我的会话信息也可以正常传输,而无需登录。但是,如果我关闭浏览器窗口,则需要我再次登录(通常会显示我的会话超时)。

令人惊讶的是,如果我导航到我的移动浏览器(Firefox for Android)上的网站,则此行为不会发生 。也就是说,我可以根据需要多次关闭并重新打开浏览器,并且我仍然会登录。

在我看来,我的本地计算机上的cookie数据库中没有正确保存的东西。在我的桌面上,这种情况发生在Chrome和Mozilla Firefox上(我还没有尝试过其他浏览器,但我可能会这样做)。

所以,我的问题是 - 这是否可以通过以某种方式操纵cookie来使应用程序不删除cookie(或发送正确的以启用登录的持久性)来改变,或者这是否只能在服务器端控制?

(顺便说一句,我不是在谈论关闭浏览器窗口并在一段时间后重新打开它,我正在谈论关闭浏览器窗口并且立即重新打开它,所以会话似乎不太可能在服务器端过期,除非服务器从浏览器收到浏览器关闭的消息,这似乎也不太可能。)

修改

我怀疑我必须做错事,因为我发现Chrome和Firefox实际上保持浏览器关闭的会话信息。问题是,由于我是从不同的客户端登录的,所以它显然使我的会话服务器端无效。

所以,我想现在我的问题更像是"我做错了什么导致会话数据无法在电子应用实例中正确存储?

BrowserWindow的配置在这里:

  const { BrowserWindow } = require('electron').remote;

  let win = new BrowserWindow({width: 800,
    height: 600,
    webPreferences: {
      partition: 'persist:sitePoller'
    }
  });
  win.loadURL('https://site-i-want-to-visit');
});

}

此外,这似乎适用于像http://www.github.com这样的网站,但不适用于基于ASP的网站,这似乎是我想要使用的所有网站(并且可以&# 39; t)有共同点。

0 个答案:

没有答案