gpt4 book ai didi

javascript - 阻止 Chrome 恢复 session

转载 作者:行者123 更新时间:2023-12-02 21:01:09 25 4
gpt4 key购买 nike

有没有办法告诉 chrome 在重新打开关闭的页面时不恢复 session ?也许是一个特殊的标题?

当我的员工登录我公司的应用程序时,它非常依赖于状态。如果他们在 60 分钟内不活动,我想将他们注销并删除与他们正在做的事情相关的所有数据,但问题是 Chome 有这个方便的功能,它会在你离开的地方重新打开你的页面,而不是质疑一个东西。我的网站不会知道他们已关闭浏览器两天,并且 setTimeout 在 50 分钟内不会触发。

我还有另外几个古怪的解决方法,但如果我能告诉 Chrome 不要尝试挽救旧 session ,而是像第一次打开一样对待每个打开的情况,我会更喜欢它。也许通过 JavaScript 禁用缓存?

编辑:我正在使用 IIS 来提供 Angular 9 静态 html 和 javascript 服务。

最佳答案

因此,正如您所提到的,您使用的是没有后端的静态网站。尽管您没有提及任何内容,但我假设您正在使用 sessionStoragelocalStorage 来处理身份验证。如果是这种情况,您可以做的是在用户登录时设置一个计时器,并维护一个 localStorage 来跟踪空闲时间。

let obj_date = new Date();
let miliseconds = obj_date.getTime(); // Returns the number of miliseconds since 1970/01/01
localStorage.setItem("idle_time",miliseconds);

之后,每隔 10、20、30 或 60 秒(根据您的选择)继续从 setInterval() 之类的函数中调用以下函数,以检查该时间限制是否已过期。

function check_if_session_expired() {
let max_idle_minutes=60;
let miliseconds_now = obj_date.getTime();
let get_idle_time_in_miliseconds = localStorage.getItem("idle_time");
let one_minute_to_milisecond = 1000 * 60;
if ((Math.round(miliseconds_now / one_minute_to_milisecond) - Math.round(get_idle_time_in_miliseconds / one_minute_to_milisecond)) >= max_idle_minutes) {

console.log("expired");
//logout the user and clear sessionStorage/localStorage if you want
} else {
localStorage.setItem("idle_time",miliseconds_now);
}
}

您可以使用 cookie 来实现同样的效果。

关于javascript - 阻止 Chrome 恢复 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61351485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com