我正在使用Symfony2,我想在关闭浏览器后注销用户。
我已经在config.yml内部将cookie_lifetime更改为0,但仍无法正常工作。
这个想法是:
答案 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,请自行尝试。