Вы можете использовать bn-ng-idle npm для определения времени простоя пользователя / тайм-аута в угловых приложениях.
npm install bn-ng-idle
app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { BnNgIdleService } from 'bn-ng-idle'; // import bn-ng-idle service
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule
],
providers: [BnNgIdleService], // add it to the providers of your module
bootstrap: [AppComponent]
})
export class AppModule { }
app.component.ts
import { Component } from '@angular/core';
import { BnNgIdleService } from 'bn-ng-idle'; // import it to your component
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
constructor(private bnIdle: BnNgIdleService) { // initiate it in your component constructor
this.bnIdle.startWatching(300).subscribe((res) => {
if(res) {
console.log("session expired");
}
})
}
}
В приведенном выше примере я вызвал метод startWatching(timeOutSeconds)
с 300 секунд (5 минут) и подпиской на наблюдаемое, когда пользователь простаивает в течение пяти минут, тогда метод подписки будет вызван со значением параметра res (который является логическим) как true.
Проверяя, является ли res истинным или нет, вы можете показать диалоговое окно или сообщение о тайм-ауте сеанса.Для краткости я просто записал сообщение на консоль.