Javascript 若用户在一段时间内并没有参与应用程序,则调用localStorage.clear()

Javascript 若用户在一段时间内并没有参与应用程序,则调用localStorage.clear(),javascript,angular,authentication,local-storage,settimeout,Javascript,Angular,Authentication,Local Storage,Settimeout,我是Angular 6的新手,我使用Angular开发了一个试点应用程序,我将登录凭据存储在本地存储中,用于用户身份验证。现在,当用户在30分钟的延迟内没有对我的应用程序执行任何操作时,我想调用localStorage.clear()方法。这是正确的过程吗?还有其他可能性吗?你不能。您唯一能做的就是在1小时的超时时间内设置delete语句。这要求用户留在您的页面上,否则将不会执行超时 您还可以设置过期字段。当用户重新访问您的站点时,检查过期时间并在下次访问时删除存储,这是您要做的第一件事。不,这

我是Angular 6的新手,我使用Angular开发了一个试点应用程序,我将登录凭据存储在本地存储中,用于用户身份验证。现在,当用户在30分钟的延迟内没有对我的应用程序执行任何操作时,我想调用localStorage.clear()方法。这是正确的过程吗?还有其他可能性吗?

你不能。您唯一能做的就是在1小时的超时时间内设置delete语句。这要求用户留在您的页面上,否则将不会执行超时


您还可以设置过期字段。当用户重新访问您的站点时,检查过期时间并在下次访问时删除存储,这是您要做的第一件事。

不,这不是一个好的专业做法。从本地存储中删除用户的凭据没有意义。您应该清除用户何时注销。但在某些情况下,可以实现会话自动注销

setTimeout(logout(){ alert("Hello"); }, 1800000);
logout(){
     localstorage.clear('user');
}

你可以通过这个来实现

我认为使用.setTimeout确实可以完成这项工作。您可以查看@Satpal,谢谢您提供的信息。这是一个很好的模块来满足我的要求。我必须在我的应用程序上实现。你可以在鼠标移动时添加一个
@HostListener
,设置
this.variable=new Date()
。然后添加一个30分钟的setTimetout来检查该变量。如果从现在到
此.variable
中存储的日期之间的时间>=30,则清除本地存储。