我使用的是Symfony2,我想在关闭浏览器后注销用户。关闭浏览器后清除缓存 - symfony2
我已经将config.yml中的cookie_lifetime更改为0,但仍然无法正常工作。
的理念是:
- 如果用户不使用记得我,我想问问他的情况下登录的他关闭浏览器,然后重新打开。
我使用的是Symfony2,我想在关闭浏览器后注销用户。关闭浏览器后清除缓存 - symfony2
我已经将config.yml中的cookie_lifetime更改为0,但仍然无法正常工作。
的理念是:
我假设您使用的是Chrome浏览器。 Chrome浏览器在清除此类cookies方面存在问题(请参阅discussion)
其他浏览器(FF,Safari)可正常工作,并在浏览器关闭时删除cookie,请自行尝试。
我发现没有真正可靠的方法来检查浏览器窗口/选项卡是否已关闭,即使您使用cookie的生命期为0,这是由于某些浏览器处理Cookie的方式。
然而,另一个 - 显然不总是可靠的方法来检查窗口/标签是否关闭使用JavaScript的卸载事件。
两者的组合应该会给你最好的结果。
范例 - 香草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中找到。
你的配置看起来不错。您在更改配置后是否清除了symfony缓存? – Ramesh
我认为这不是缓存问题。这是因为php会保存会话,所以您必须清除会话,而不是symfony缓存。 –
您在更改后是否清除了您的**浏览器cookie **? – nifr