关闭浏览器后清除缓存 - symfony2

时间:2014-02-28 03:13:02

标签: php symfony

我正在使用Symfony2,我想在关闭浏览器后注销用户。

我已经在config.yml内部将cookie_lifetime更改为0,但仍无法正常工作。

这个想法是:

  • 如果用户没有使用REMEMBER ME,我想请他登录,以便他关闭浏览器并再次打开。

2 个答案:

答案 0 :(得分:0)

我发现,由于某些浏览器处理cookie的方式,即使您使用的cookie生命周期为0,也没有真正可靠的方法检查浏览器窗口/标签是否已关闭。

然而另一个 - 显然并不总是可靠的 - 检查窗口/标签是否关闭的方法是使用JavaScript的卸载事件。

两者的结合应该会给你最好的结果。

示例 - vanilla JavaScript:

window.onbeforeunload = function(){
  // send ajax request to invalidate the session
};

......或......

window.unload = function(){
  // send ajax request to invalidate the session
};

示例 - jQuery:

$(window).bind('beforeunload', function(){
  // send ajax request to invalidate the session
});

......或......

$(window).unload(function(){
  // send ajax request to invalidate the session
});

更多信息可在this question中找到。

答案 1 :(得分:0)

我假设您使用的是Chrome浏览器。 Chrome在清除此类Cookie时遇到问题(请参阅discussion

其他浏览器(FF,Safari)工作正常并在浏览器关闭时删除cookie,请自行尝试。