如果用户在 angular 的特定时间不活动,如何注销用户?

how to logout user if user is inactive for particular time in angular?

我在 angular 工作。如果他不活动,我想注销用户。我找到了解决方案,但这仅适用于特定页面。我有很多页面,所以我不能在每个代码中放入相同的代码。有什么方法可以在 angular 中全局捕获不活动?

我试过这段代码,它有效,但它只适用于特定页面。

constructor() { 
    this.setTimeout();
    this.userInactive.subscribe(() => console.log('user has been inactive for 3s'));
  }

  userActivity:any;
  userInactive: Subject<any> = new Subject();
  
  setTimeout() {
    this.userActivity = setTimeout(() => this.userInactive.next(undefined), 3000);
  }

  @HostListener('window:mousemove') refreshUserState() {
    clearTimeout(this.userActivity);
    this.setTimeout();
  }

您好,对于这个问题,您必须在模块级别或整个应用程序中实施它。 例如,在 AppComponent 中,您可以放置​​此逻辑并检查用户是否已登录。

并且他在 1 分钟或 2 分钟的所需时间内处于非活动状态您可以调用注销服务并将用户再次重定向到登录页面。

还有一些 npm 库可用于检查闲置,下面是一个库

npm 库:angular-user-idle

演示:Demo