按下后退按钮后如何防止用户登录后退出

时间:2015-01-14 08:31:17

标签: javascript html5

我编写了一个Web应用程序,它使用cookie来维护服务器端的状态和python CGI脚本。现在按下注销按钮后,用户将被重定向到新页面,但是当再次按下后退按钮时,它会再次收回并显示他登录。有没有办法通过HTML5历史API使用onpopstate事件来防止这个或其他什么可能更好?

2 个答案:

答案 0 :(得分:2)

这是因为您的浏览器缓存了客户端上的页面。

解决方案是通过强制浏览器即使按下“返回”按钮而不是阅读已保存的页面来强制浏览器请求新页面,以防止缓存该页面。

阅读Thisthis

更新:

1)您可以使用一些必须从服务器端获取的身份验证令牌,并且您需要在每个页面加载事件发生时验证它。只需将此令牌保存在任何浏览器存储空间中,并清除一次如果令牌不可用,则用户已注销,然后将用户重定向到登录页面

2)或者只是在用户登录时创建一个cookie变量,并在注销时清除它,并检查每个页面加载事件中是否有这个cookie。

答案 1 :(得分:1)

在您的退出功能上清除所有Cookie,例如

function deleteAllCookies() {
    var cookies = document.cookie.split(";");

    for (var i = 0; i < cookies.length; i++) {
        var cookie = cookies[i];
        var eqPos = cookie.indexOf("=");
        var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
        document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
    }
}
相关问题