如何防止用户在按后退按钮注销后登录

How to prevent user loging in after log out on pressing back button

本文关键字:按钮 注销 登录 何防止 用户      更新时间:2023-09-26

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

发生这种情况是因为您的浏览器在客户端上缓存了该页面。

解决方案是防止该页面的缓存,方法是强制浏览器即使在按"后退"按钮时请求新页面,而不是读取保存的页面。

阅读这个和这个

更新:

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

2)或者简单地在用户登录时创建一个cookie变量,并在注销时清除它,并检查此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";
    }
}