关闭Firefox时如何注销?

时间:2014-03-06 03:43:48

标签: firefox cookies

我目前正在开发一个在Firefox上运行的网站。

我的程序中有一个拦截器拦截所有请求并判断cookie值是否为登录状态。如果未登录状态,则重定向到登录页面。

当Firefox启动时,我的Firefox设置为“从上次显示我的窗口和标签页”。

我登录网站并直接关闭Firefox。但是当我重新打开Firefox时,它仍然处于登录状态。

我该怎么做才能避免这个问题?

1 个答案:

答案 0 :(得分:0)

本主题可能会让您深入了解Firefox Cookie处理:Firefox session cookies

此外,问题中没有明确说明您想要实现什么目标。如果您有兴趣仅为自己解决问题,请考虑更改Firefox模式。如果您想为任何基于Firefox的网站用户修复它,请考虑提及您用于创建网站的技术。

UPD: One the one hand

  

未在Cookie上指定Expires值将导致在浏览器会话结束时删除Cookie,即当用户关闭浏览器时。

另一方面,正如post above中所述,Firefox以稍微不同的方式处理cookie。

因此,您可以使用短Cookie Expires值,并在用户上线时定期更新。

您也可以use unload and onbeforeunload events,它可以帮助您通过关闭标签或转到其他地址来检测离开网站。

以下型号也是可能的:

在客户端:

once a user opens a new tab, 
    some ID is given to this in js code, 
    and that ID is sent to the server as an ID to create;
once a tab is closed, 
    its ID is sent to server by js code as an ID to remove; 

在服务器端:

once a server receives an ID to create,
    it generates a session ID and returns it to a client;
once a server receives an ID to remove,
    it checks, if there are any more tab IDs left,
        if there are some, it just removes a tab ID from an array of those IDs;
        if there are no more, it removes the session and clears its tab IDs array;